标签:
我们都知道,在方法调用中,this指代的是方法所属的对象,如以下代码:
obj.test(console.log(this === obj)); //返回true
但是在嵌套函数中,情况就发生了很大变化。这需要分为两种情况:严格模式和非严格模式
//非严格模式下 var obj = { test:function (){ var self = this; console.log(this === obj); //true f(); function f(){ console.log(this === obj); //false console.log(self === obj); //true console.log(this === window); //true }; } }; obj.test();
//严格模式下 "use strict" var obj = { test:function (){ var self = this; console.log(this === obj); //true f(); function f(){ console.log(this === obj); //false console.log(self === obj); //true console.log(this === window); //false console.log(this === undefined); //true }; } }; obj.test();
标签:
原文地址:http://www.cnblogs.com/princeding/p/4438616.html