javascript - .call()/.apply() 没有参数 VS 简单地调用带有 () 括号的函数

标签 javascript function closures

我已经看到它在外面的代码中以不同的方式完成,但是在常规 ()< 上执行(空白参数).call/.apply 是否有任何好处或理由/strong> 函数执行。

这当然是一个过度简化的例子

var func = function () { /* do whatever */ };

func.call();
func.apply();

VERSUS 只是简单的括号。

func();

在任何地方都没有看到这方面的任何信息,我知道为什么在传递参数时使用 call/apply。

最佳答案

当您使用 func(); 调用方法时,方法中的 this 变量指向 window 对象。

何时何地使用 call(...)/apply(...)传递给方法调用的第一个参数在方法内部变为 this。如果您没有传递任何参数/传递 null 或 undefined 那么 thisbecome global object在非严格模式下。

关于javascript - .call()/.apply() 没有参数 VS 简单地调用带有 () 括号的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15903782/

相关文章:

javascript - javascript 中的闭包范围

Javascript 闭包——它们之间有什么区别

javascript - 如何将node.js模块请求到缓存而不执行?

javascript - 创建一个有两个参数的函数,参数 a 将是一个数组,参数 b 将在数组中查找一个元素

使用二维数组作为参数时,C++ 编译器错误 : "No matching function for call",

具有不同参数传递的 Javascript 函数

JavaScript 闭包和变量作用域

javascript - 如何将 CDATA.data 值转换为正确的innerHTML。

javascript - 如何使用 Slickgrid 对行进行排序?

Javascript:按值从 Json 中删除元素