关于对象中的this指向

Posted lhseo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于对象中的this指向相关的知识,希望对你有一定的参考价值。

1、关于对象中的this指向问题

 

<script>
window.test1 = ‘试验文字1‘;
        window.test2 = ‘试验文字2‘;
        var obj = {
            test3: ‘试验文字3‘,
            getName: function() {
                // 不能正常输出
                // 该方法相当于是obj调用,所以this是指向obj
                console.log(this.test1);
                // 能正常输出
                console.log(this.test3);
                return function() {
                    // 能正常输出
                    // 在调用getName方法是生成了一个函数,位于全局作用域下,所以该方法的调用者是window,this也就指向了window
                    console.log(this.test2)
                }
            }
        }
        obj.getName()();
</script>

 

2、对象中的普通函数和箭头函数中的this指向

 

<script>
        window.winTest = ‘winTest‘;
        var obj1 = {
            objTest: ‘objTest‘,
            // 普通函数this指向其调用者,fun1的调用者是obj1
            fun1: function() {
                console.log(this.objTest)
            }
        }
        var obj2 = {
            // 箭头函数本身不指定this,而是根据上下文的this确定,即obj2的调用者。obj2的调用者是window,所以this指向window
            fun2: () => {
                console.log(this.winTest)
            }
        }
        obj1.fun1();
        obj2.fun2();
        var obj3 = {
            name: this.winTest
        }
        console.log(obj3.name)
    </script>

 

以上是关于关于对象中的this指向的主要内容,如果未能解决你的问题,请参考以下文章

关于this的指向问题

JS中的this

关于this的指向问题

关于this的指向问题

关于js中this指向的总结

关于this指向思考