javascript调用方法如何工作?

时间:2016-01-08 18:44:19

标签: javascript hapijs

您好我正在查看hapijs框架的核心代码,我注意到了这一点。

this

我不知道为什么他们传递了两个[], '', nullIdlingResource以及它应该做什么。

2 个答案:

答案 0 :(得分:2)

.call.apply用于运行具有不同上下文this的函数,并允许您以不同方式传递参数。

都接收this上下文作为第一个参数。

调用将剩余的参数作为逗号分隔的参数列表。

Plugin.call(this, this, [], '', null);

apply将数组或数组(如参数对象)传递给被调用函数。

Plugin.apply(this, [this, [], '', null]);

该代码范围内的某个地方将是一个名为Plugin

的函数

callapply上有大量文档,因为它可能有点难以理解,但是一旦你知道它的使用方式和原因,你就会开始在任何地方使用它。< / p>

答案 1 :(得分:1)

查看此文件:https://github.com/hapijs/hapi/blob/master/lib/plugin.js#L21

如上所述,第一个UIBarButtonItem正在传递上下文:this

给定函数的参数列表fun.call(thisArg[, arg1[, arg2[, ...]]]),最终的参数调用将是:

(server, connections, env, parent)

此外,请在此处server: this connections: [] env: '' parent: null 阅读:http://mzl.la/18EkRLg