您好我正在查看hapijs框架的核心代码,我注意到了这一点。
this
我不知道为什么他们传递了两个[], '', null
和IdlingResource
以及它应该做什么。
答案 0 :(得分:2)
.call
和.apply
用于运行具有不同上下文this
的函数,并允许您以不同方式传递参数。
都接收this
上下文作为第一个参数。
调用将剩余的参数作为逗号分隔的参数列表。
Plugin.call(this, this, [], '', null);
apply将数组或数组(如参数对象)传递给被调用函数。
Plugin.apply(this, [this, [], '', null]);
该代码范围内的某个地方将是一个名为Plugin
call
和apply
上有大量文档,因为它可能有点难以理解,但是一旦你知道它的使用方式和原因,你就会开始在任何地方使用它。< / 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