Wes*_*ley 7 javascript string jquery function object
我在字符串中有一个函数名称:
var func = "doTest";
Run Code Online (Sandbox Code Playgroud)
我需要将此函数应用于当前实例("this");
所以我需要它来打电话:
this.doTest();
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?我不能通过窗户.
谢谢,韦斯利
med*_*iev 22
只需使用构造object[functionName]();,如下所示:
function Person() {};
Person.prototype.speak = function() { alert('ohai'); };
var john = new Person, action = 'speak';
john[action]();
Run Code Online (Sandbox Code Playgroud)
另类风格:
var Person = {
speak: function() { alert('ohai'); },
speakDelegate: function() { var action = 'speak'; this[action](); }
};
Person.speakDelegate();
Run Code Online (Sandbox Code Playgroud)
this[func]();
Run Code Online (Sandbox Code Playgroud)
不需要.call或.apply因为上下文保留在引用中.
例如:
var obj = {
doTest: function(){ console.log(this); },
fn: function(){ var name='doTest'; this[name](); }
};
obj.fn(); // logs the object, proving this has the correct context.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9280 次 |
| 最近记录: |