先搞清楚一点,如果this在函数里面,那么它指向的是“函数执行后”的上一级调用对象。
var a="this is a";
function main() {
console.log(this.a)//这里this指向window.
}
main()//这里相当于window.main(),默认window对象了,所以可以省略;
12345
var o={ x:“this is x”, y:“this is y”, say:function(){ console.log(this.x); } } o.say();//这里的this指向的是对象o,因为你调用这个say是通过o.say()执行的,那自然指向就是对象o,这里再次强调一点,this的指向在函数创建的时候是决定不了的,在调用的时候才能决定,谁调用的就指向谁,一定要搞清楚这个。
var o={ name:“maomin”, say1:function(){ console.log(this.name);//maomin } } window.o.say1(); // 上面几行代码和之前的代码几乎相似,为什么没有指向window,这就回到了我刚开始说的,this如果在函数内,那么它指向的是该函数执行后的上一级调用对象。
更多请见:https://blog.csdn.net/weixin_44519496/article/details/120128073
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。