我有一个带有一组原型方法的对象.如何调用给定的名称和arg列表?
所以我有和反对:
scarpa.MyThing = function() { }
MyThing
有一个原型方法:
scarpa.MyThing.prototype.beAwesome = function(a, b, c) { // do awesome stuff here with a, b, and c }
现在,我想beAwesome
从另一个原型方法调用:
scarpa.MyThing.prototype.genericCaller = function(methodName, d, e, f) { // this does not work for me this.call(methodName, d, e, f) }
以下是致电genericCaller
:
this.genericCaller('beAwesome', alpha, zeta, bravo);
我坚持使用正确的语法进行调用genericCaller
.
有人可以赐教吗?谢谢.
您想使用括号表示法并应用
scarpa.MyThing.prototype.genericCaller = function(methodName) { var args = [].slice.call(arguments); //converts arguments to an array args.shift(); //remove the method name this[methodName].apply(this, args); //call your method with the current scope and pass the arguments };
使用参数的好处是你不必一直担心d,e,f.你可以传递20件事,它仍然有效.