码迷,mamicode.com
首页 > 其他好文 > 详细

关于对象中的this指向

时间:2020-04-12 23:01:54      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:style   全局   rip   生成   cti   调用   script   code   getname   

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指向

标签:style   全局   rip   生成   cti   调用   script   code   getname   

原文地址:https://www.cnblogs.com/lhseo/p/12687834.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!