我正在开发一个小框架(在JS中),并且出于审美原因和简单性,我想知道是否有可能实现类似PHP“__invoke”的方法。JavaScript等效的PHP __invoke
例如:
var myClass = function(config) {
this.config = config;
this.method = function(){};
this.execute = function() {
return this.method.apply(this, arguments);
}
}
var execCustom = new myClass({ wait: 100 });
execCustom.method = function() {
console.log("called method with "+arguments.length+" argument(s):");
for(var a in arguments) console.log(arguments[a]);
return true;
};
execCustom.execute("someval","other");
希望的方式来执行:
execCustom("someval","other");
任何想法?谢谢。
jsbin:http://jsbin.com/ESOLIce/1/edit?js,console – lepe
据我所知,因为execCustom是函数myClass的一个实例,因此您要么使用主函数作为构造函数为班级,或作为一种方法来执行。我唯一能想到的就是定义一个包装函数,就像函数exec(execCustom){execCustom .__ invoke()},其中__invoke被定义为execCustom(myClass)中的一个函数。 –
谢谢扎克。是的,我认为是这样的......如果我找不到更好的方法去做,那么我想我会像这样离开它。 – lepe