【发布时间】:2017-10-08 11:06:26
【问题描述】:
无法重现MDN's example(«以类似数组的方式使用对象»)。
let obj = {
length: 0,
addEl: function (element) {
[].push.call(this, element);
};
};
// Node REPL still expect me to do something, so there's an error. Why?
你们能解释一下这里出了什么问题吗?此外,我似乎不明白这里的机制:
// from the example:
obj.addElem({});
obj.addElem({});
console.log(obj.length);
// → 2
如果我们用一些不同的参数调用函数,而不是{},它会起作用吗?如果它不会,那我们为什么要准确地使用{}?这里的this 上下文是什么:addEl 方法或对象本身?如果是第二个,为什么不使用 addEl 函数:它不是数组函数,所以它应该有自己的 this (而且,我想,我会使用类似 objThis = this; 的属性)。
另一个相关问题是here。
【问题讨论】:
标签: javascript call