0

私は自分の質問についてできるだけ明確にしようとします:

クロージャーを説明するブログやチュートリアルはたくさんありますが、クロージャーが作成されたコンテキストの他のプロパティで何が起こるかを理解できませんでした。jsフィドル

function func(){

    this.context_field = "context_field";
    this.context_method = function(){
        console.log("context method");
    };


    func = function(param, change){
        if(typeof(change) === 'undefined'){
           //......
            console.log(param + " " + context_field + " from original func - closure\n\n");
           //.....
    }
    return func;
};

func()("Init finished and call");
func("Call again", "");
4

2 に答える 2

2

この例では、関数「func」内のキーワード「this」がウィンドウ (グローバル オブジェクト) を参照しているため、コンテキストは作成されません。

コンテキストを作成するには、次のように変数を宣言します。

var context_field = "context_field";
var context_method = function(){
    console.log("context method");
};
于 2013-04-25T19:28:53.390 に答える