3

クロージャー関数の動作をオーバーライドすることについて疑問に思っています。

たとえば、以下のスニペットでbaz()関数をオーバーライドするにはどうすればよいですか?

(関数() {

    var foo = 'Hello';
    var bar = 'World!'

    function baz(){
        return foo + ' ' + bar;
    }

})();

4

1 に答える 1

2

クロージャーの外側にいる場合、クロージャーのbaz()内側にある関数をオーバーライドすることはできません。クロージャはプライバシーを提供し、ローカル変数で機能するのと同じようにローカル関数で機能します。

クロージャー内にいる場合は、クロージャーbaz()内の新しいバージョンを定義するか、内のコードを編集できますbaz()

関連する質問:Javascriptでクロージャで定義された「クラス」を「拡張」できますか?

于 2012-09-04T08:01:57.500 に答える