在某些JavaScript中,我看到:
var passport = require('passport')
function Strategy(options, verify) {
//...
passport.Strategy.call(this);
}
passport.Strategy.call(this);
在做什么?
答案 0 :(得分:3)
在该代码的上下文中,这实际上是一种执行超级构造函数的方法。例如,查看passport-local对象,护照本地类的原型继承自Strategy原型。实际上它是护照的“子类”。策略。当您创建passport.Local的新实例时,您还需要执行超级构造函数(passport.Strategy)。执行constructor.call(context)
允许您在子类的上下文中执行超级构造函数。
答案 1 :(得分:1)
.call()
函数是一个本机javascript函数,它将上下文传递给函数。在这种情况下,调用函数passport.Strategy()
并传递this
的上下文。
这意味着在passport.Strategy()
函数中this
对象引用第一个传递给.call()
函数的变量。