javascriptの中の3つの典型的な情況の下でthisの意味

1681 ワード

thisの本意:関数に基づいて環境バインディングを実行します.
1)一般関数の内部では、window(スコープ内の第二層グローバルスコープ)が返されます.
function test() {
return this;
}
alert(test());
 
2)オブジェクト内部の方法で、返したthisは、そのオブジェクトを指します.
    var name = "The window";
        var object = {
            name: "MyObject",
            getNameFunc: function() {
                return this.name;
            }
        };
    alert(object.getNameFunc());
3)匿名関数では、対象内であるかどうかにかかわらず、windowに戻る.
    function test() {
            return function (){
                return this;
            };
        }
    alert(test()());//  test,test() test()(),       。

    var name="The Window";
    var object = {
            name: "My Object",

            getNameFunc: function () {
                return function () {
                    return this.name;
                };
            }
        };

    alert(object.getNameFunc()());  //"The Window"