0

JavaScriptでこれを行うことができます

var text = "the original text";

text+=";Add this on";

ライブラリに既に関数が定義されている場合 (例)

//In the js library
library.somefunction = function() {...};

2 つの関数を実行できるように何かを追加する方法はありますか?

var myfunction = function() {...};

何かのようなもの:

library.somefunction += myfunction

両方myfunction()とオリジナルのlibrary.somefunction()両方が実行されるようにするには?

4

2 に答える 2

1

この種のコードを使用できます (スコープを空のままにして、デフォルトのスコープを使用します)。

var createSequence = function(originalFn, newFn, scope) {
    if (!newFn) {
        return originalFn;
    }
    else {
        return function() {
            var result = originalFn.apply(scope || this, arguments);
            newFn.apply(scope || this, arguments);
            return result;
        };
    }
}

それで:

var sequence = createSequence(library.somefunction, myFunction);
于 2013-05-07T08:20:24.807 に答える
0

作成したいのはフック(関数)だと思います-呼び出したいlibrary.somefunctionが、前に実行する独自のコードを少し追加します。その場合は、コードの処理myfunctionが完了した後で、ライブラリ関数を呼び出すか返すことができます。

var myfunction = function() {

    // your code
    // ...

    return library.somefunction();
}
于 2013-05-07T08:30:33.533 に答える