将参数传递给对象或继承对象的功能?

时间:2012-08-14 14:49:38

标签: javascript function object inheritance prototype

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}}

提前致谢 麦克

1 个答案:

答案 0 :(得分:0)

您可以使用.call [MDN].apply [MDN]

明确设置this在函数中应引用的内容
WSFunctions[this.name].call(this);

这将调用WSFunctions[this.name]this被设置为调用者this引用的内容(在本例中为new WS(...)创建的实例)。

另请查看this page,其中详细说明了this的工作原理。