Я разрабатываю небольшую структуру (в 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