问题描述
我已经看到它在代码中做了不同的,但有一个好处或理由做一个(空白参数) .call / .apply over一个常规()函数执行。
I've seen it done differently in code out there, but is there any benefit or reason to doing a (blank params) .call / .apply over a regular () function execution.
这当然是一个过度简化的例子。
This of course is an over-simplified example
var func = function () { /* do whatever */ };
func.call();
func.apply();
VERSUS 只是简单的括号。
func();
在任何地方都没有看到任何信息,我知道为什么调用/
Haven't seen any information on this anywhere, I know why call/apply are used when params are passed.
推荐答案
当你使用 func();
,这个
变量指向窗口
对象。
When you call a method with func();
, this
variable inside the method points to window
object.
您在何时使用 / 传递给方法调用的第一个参数在方法内部变为 this
。如果您不传递任何参数/传递null或未定义,则此
将成为非严格模式下的全局对象。
Where as when you use call(...)/apply(...) the first parameter passed to the method call becomes this
inside the method. If you are not passing any arguments/pass null or undefined then this
will become global object in non strict mode.
这篇关于.call()/ .apply()with NO parameters VS简单地调用一个带有()paranthesis的函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!