作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好的。所以直到现在,我已经“摆脱了”使用这样的东西:
function foo(arg) {
// Default values:
var opt = { a: 1, b: 2, c: 3 },
key;
for (key in opt)
if (opt.hasOwnProperty(key) && arg.hasOwnProperty(key))
opt[key] = arg[key];
}
现在,我越来越讨厌使用 hasOwnProperty
,因为它可能已被某些自定义属性覆盖。
如果我们要使用 keys()
、forEach()
等,而不是什么做上述事情的正确方法?是这样的吗?
function bar(arg) {
// Default values:
var opt = { a: 1, b: 2, c: 3 },
keys = Object.keys(arg);
Object.keys(opt).forEach(function(key) {
if (keys.indexOf(key) !== -1)
opt[key] = arg[key];
});
}
最佳答案
如果您担心 hasOwnProperty
已被覆盖,那么您可以这样做:
Object.prototype.hasOwnProperty.call(arg, key)
所以你的原始代码可以是:
function foo(arg) {
var opt = { a: 1, b: 2, c: 3 },
check = Object.prototype.hasOwnProperty,
key;
for (key in opt) {
if (check.call(opt, key) && check.call(arg, key)) {
opt[key] = arg[key];
}
}
return opt;
}
关于javascript - 对象的适当属性循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22398751/
这段代码在 Java 中的等价物是什么?我放了一部分,我对 I/O 部分感兴趣: int fd = open(FILE_NAME, O_WRONLY); int ret = 0; if (fd =
我正在尝试将维度为 d1,d2,d3 的张量 M[a1,a2,a3] reshape 为维度为 d2, d1*d3 的矩阵 M[a2,a1*a3]。我试过 M.reshape(d2,d1*d3) 但是
我是一名优秀的程序员,十分优秀!