JavaScript ".call"不明白

标签 javascript

我不明白最后两行之间的区别,特别是 myFunc.call 和 myFunc 之间的区别。有人可以向我解释一下吗?我真的很感激。

var myObject = {
length: 400,
};

function myFunc () {
return console.log(this.length);

}

myFunc.call(myObject); // equals 400
myFunc(myObject); // equals zero

最佳答案

.call() 允许您调用函数,同时指定 this 在函数内部引用的内容。不使用 .call 调用它会使用 this 的当前值。

在您的示例中,myFunc.call(myObject) 运行 myFunc 并将 myObject 作为 this,这允许this.length 实际引用某物。

关于JavaScript ".call"不明白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23860895/

相关文章:

javascript - 连续调用javascript函数直到条件

javascript - 使用 Node 代理时出错

javascript - 在单一条件下检查粘性菜单的 scrollTop 和 id 偏移量

javascript - 如何从 View 文件访问 View 模型中定义的变量

javascript - 如何通过单击相应行的按钮来删除表格行?

JavaScript 每次(if 语句)为 true 时增加数字

javascript - 使用 jQuery 获取文本框的值

javascript - 如何从未知的 JsonStore 对象中获取字段列表?

javascript - 为什么 $(document).scrollTop() 不等于文档底部的 $(document).height() ?

javascript - Node.js 中的 module.exports 与导出