tsx81428 发表于 2025-1-1 04:13:43

js的this指向


[*]this总是指向调用它所在方法 的对象,而与方法的声明位置无关。在浏览器中,调用方法时没有明白对象的,this指向window。
let obj = {
        name :'a',
        getName:function(){
                                        console.log(name)
                                        }
let otherObj = {
                                name:'b',
                                getName:obj.getName
                                };
var name = 'c';
var getName = obj.getName
obj.getName();// a
otherObj.getName();// b
getName();// 浏览器中this指向window对象,执行结果为c,node中执行结果为undefined,如果声明为严格模式,结果为undefined

[*]如果是new的方式,那么函数中的this就是当前的实例对象,对象中的方法,里面的this还是实例对象
[*]在浏览器中setTimeout,setInterval和匿名函数执行时的当前对象是全局对象window,node和严酷模式下是undefined;

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: js的this指向