关于javascript,私有作用域中this的指向问题,谢谢各位!!

<!DOCTYPE html>

<html>

    <head>

        <meta charset="UTF-8">

        <script src="../lib/jquery.min.js"></script>

        <script src="https://cdn.bootcss.com/angular.js/1.3.6/angular.js"></script>

        <script src="https://cdn.bootcss.com/angular.js/1.3.6/angular-route.js"></script>

        <title>图灵机器人</title>

        <script>

            var name = "Top";

            var obj = {

                name:"My Object",

                sayName:function(){

                    alert(this.name);

                }

            }

            obj.sayName();//My Object

            (obj.sayName)();//My Object

            (obj.sayName = obj.sayName)();//Top

        </script>

    </head>

    <body>

    </body>

</html>

这段代码的第三种写法为什么this指向的是全局变量?这第三种写法等价于怎样的写法,我改怎样去理解第三行的这段写法?谢谢各位大神!!


紫衣仙女
浏览 738回答 2
2回答

料青山看我应如是

前两种写法,都是通过obj调用obj的方法sayName方法第三种写法,自认为等同于:var tmp = obj.sayName;tmp();这个时候tmp已经是全局变量了,相当于调的是window.tmp(),那this肯定是指向window了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript