1. 程式人生 > >JS權威指南筆記(171頁)-this關鍵字的作用域

JS權威指南筆記(171頁)-this關鍵字的作用域

var 模式 fun 調用 gpo this關鍵字 === 繼承 沒有

和變量不同,關鍵字this沒有作用域的限制,嵌套函數不會從調用它的函數中繼承this.如果嵌套函數作為方法調用,其this值不是全局對象(非嚴格模式下),就是undefined(嚴格模式下).很多人誤以為調用嵌套函數時this會指向調用外層函數的上下文.如果你想訪問這個外部函數的this值,需要將this的值保持在一個變量裏,這個變量和內部函數都同在一個作用域內.通常使用變量self來保存this,比如:

        var o={
            m:function(){
                var self=this;
                console.log(
this===o);//==>true; f(); function f(){ console.log(this===o);//==>false; console.log(self===o);//==>true; } } }; o.m();

JS權威指南筆記(171頁)-this關鍵字的作用域