本文介绍了.call()/ .apply()with NO parameters VS简单地调用一个带有()paranthesis的函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经看到它在代码中做了不同的,但有一个好处或理由做一个(空白参数) .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的函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!