我没有得到最后两行之间的差异,特别是myFunc.call和myFunc之间的差异。有人可以向我解释一下吗?我真的很感激。
var myObject = {
length: 400,
};
function myFunc () {
return console.log(this.length);
}
myFunc.call(myObject); // equals 400
myFunc(myObject); // equals zero
答案 0 :(得分:2)
.call()
允许您在指定函数内部引用的this
时调用函数。在没有.call
的情况下调用它会使用当前值this
。
在您的示例中,myFunc.call(myObject)
以myFunc
myObject
运行this
,this.length
允许{{1}}实际引用某些内容。
答案 1 :(得分:1)
call
方法用于指定函数的上下文,就像函数是对象的成员一样,并被称为方法:
var myObject = {
length: 400,
myFunc: function () {
return console.log(this.length);
}
};
myObject.myFunc(); // equals 400