javascript中三種典型狀況下this的含義

this本意:基於函數的執行環境綁定。函數

1)通常函數內部,返回的是window(做用域鏈中的第二層全局做用域)this

function test() {
return this;
}
alert(test());

 

2)在對象內部的方法,返回的this,指向該對象。spa

    var name = "The window";
        var object = {
            name: "MyObject",
            getNameFunc: function() {
                return this.name;
            }
        };
    alert(object.getNameFunc());


3)在匿名函數中,不管是否在對象內部,都是返回windowcode

    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"
相關文章
相關標籤/搜索