扫码关注官方订阅号
为啥这个输出的是全局啊,麻烦各位大神说的详细一点
光阴似箭催人老,日月如移越少年。
简单来说是因为函数中this指向调用这个方法的对象, 但是在saySex:function(){}中,并没有明确的对象调用getSex(),所有默认是window在调用;
var obj = { ... saySex:function(){ console.log(this) //此处this指向obj,因为你能够调用saySex,必然是obj.saySex()通过obj调用; //getSex()在saySex函数内部定义的函数,作用域在函数内部,所以对于是谁在调用saySex,getSex无法知道,除非你告诉它; var that = this; function getSex(){ console.log("this.sex=" + this.sex); console.log(that.sex); //此处可以取到你想要的值; } getSex(); //此处并没有明确的对象调用getSex,所以默认全局调用; }, ... }
this 指 window
默认的指向是window啊。你的getSex又么有绑在对象上
你这个this指的不是window,指的是当前那个对象,具体可以看看我那个博客里面关于this那一段,你就明白了.https://1657413883.github.io/...
具体不是很清楚 要留住thishttp://p.io/topic/809
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
简单来说是因为函数中this指向调用这个方法的对象, 但是在saySex:function(){}中,并没有明确的对象调用getSex(),所有默认是window在调用;
this 指 window
默认的指向是window啊。你的getSex又么有绑在对象上
你这个this指的不是window,指的是当前那个对象,具体可以看看我那个博客里面关于this那一段,你就明白了.https://1657413883.github.io/...
具体不是很清楚 要留住this
http://p.io/topic/809