2

私は小さなフレームワーク (JS で) を開発していますが、審美的な理由と単純さのために、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");

何か案は?ありがとう。

4

2 に答える 2

0

Just return a function that will form the public interface:

function myClass(config)
{
  var pubif = function() {
    return pubif.method.apply(pubif, arguments);
  };
  pubif.config = config;
  pubif.method = function() { };

  return pubif;
}

The rest of the code remains the same.

于 2013-09-26T05:48:41.163 に答える