console.log()
执行的第二个WSFunctions[this.name]();
将打印undentified
。我想知道我是否能够以inherit
DoThisAndThat
功能Call()
WSFunctions[this.name](this.params)
。我不想以this.params
的方式传递params,因为项目增长时可能会超过function WS(name, params) {
this.name = name;
this.params = params;
}
WS.prototype.Call = function() {
if (typeof WSFunctions[this.name] !== "function") {
return false;
}
console.log(this.params);
WSFunctions[this.name]();
return true;
}
var WSFunctions = {
'ScreenRightGuest': function() {
// .. whatever ..
return true;
},
'DoThisAndThat': function() {
console.log(this.params);
return true;
}
}
new WS('DoThisAndThat', { login: '123', pass: 'abc' }).Call();
。
{{1}}
提前致谢 麦克
答案 0 :(得分:0)
您可以使用.call
[MDN]或.apply
[MDN]
this
在函数中应引用的内容
WSFunctions[this.name].call(this);
这将调用WSFunctions[this.name]
,this
被设置为调用者this
引用的内容(在本例中为new WS(...)
创建的实例)。
另请查看this page,其中详细说明了this
的工作原理。