如果您查看此行https://github.com/hapijs/hapi-auth-basic/blob/master/lib/index.js#L14,您可以看到它在不传递任何参数的情况下调用internals.implementation
,但该方法有2个参数https://github.com/hapijs/hapi-auth-basic/blob/master/lib/index.js#L14。
如果没有传递参数,方法internals.implementation
如何工作?
答案 0 :(得分:2)
在第14行,实际上并未调用internals.implementation
。相反,对函数的引用正被传递给plugins.auth.scheme()
,可能稍后由auth
插件调用(实际参数将被传递)。
例如,这是一个简化版本:
function sampleImplementation(message) {
alert(message);
}
function useImplementation(implementation, message) {
implementation.apply(this, [message]); // invoke the function with args
}
useImplementation(sampleImplementation, "hey there!"); // should alert "hey there!"