0

以下の2つのコードの違いは何だろうか。最初のケースでthisはオブジェクトを参照し、2 番目のケースではオブジェクト名を使用しました。両方の作品ですが、2つの間に実際の違いがあるかどうか疑問に思っていました.

(function() {
var app = {
    init: function () {
        app.addLun('Hello');
    },
    addLun: function(a) {
        console.log(a);
    }
};
});
})();

var app = {
    init: function () {
        this.addLun('Hello');
    },
    addLun: function(a) {
        console.log(a);
    }
};
});
})();
4

3 に答える 3

1

this関数のコンテキスト/スコープを参照するため、呼び出し方に応じてapp、 、window、または他の多くのスコープを参照できます...

appそのスコープに存在する場合、実際のアプリ オブジェクトを参照します。

于 2013-07-29T13:37:36.743 に答える
-1

はい、違いがあります。アプリ オブジェクトのその 1 つのインスタンスをさらに必要とする場合 (たとえば、jQuery.extend() で複製できます)、適切な作業のために 2 番目のバリアントを使用する必要があります。

于 2013-07-29T13:39:46.773 に答える