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"