2

現在、他のいくつかの関数で最後に呼び出す関数があります。このように書く代わりに:

function foo(){

    baz();
}

function bar(){

    baz();
}

function baz(){

}

baz()関数を呼び出すときに自動的に実行する方法はありますか? おそらく、他の関数のプロトタイプを変更して、IIFE として追加することによってですか? これは可能ですか?

4

1 に答える 1

0

「テンプレート方式」のデザインパターンのようなものでしょうか。もしそうなら、これを試してください:

function inherit(proto) {
    var F = function() { };
    F.prototype = proto;
    return new F();
}

var template = {
    process: function() {
        this.mainfunction();
        this.baz();
    }
    baz:function(){

    }
};

(function run() {
    var foo = inherit(template);
    foo.mainfunction = function(){
    }
    foo.process();

    var bar = inherit(template);
    bar.mainfunction = function(){
    }
    bar.process();
}())
于 2013-05-16T08:06:41.027 に答える