为什么这两个console.log的值不一样

<script type="text/javascript">

        var fullname = 'John Doe';

        var obj = {

            fullname: 'Colin Ihrig',

            prop: {

                fullname: 'Aurelio De Rosa',

                getFullname: function() {

                    return this.fullname;

                }

            }

        };

        var test = obj.prop.getFullname;

        console.log((test)());

        console.log((obj.prop.getFullname)());

//        John Doe    Aurelio De Rosa


慕容3067478
浏览 524回答 1
1回答

茅侃侃

this指向问题,两次运行的this指向不是同一个对象&nbsp; &nbsp; var fullname = 'John Doe';&nbsp; &nbsp; var obj = {&nbsp; &nbsp; &nbsp; &nbsp; fullname: 'Colin Ihrig',&nbsp; &nbsp; &nbsp; &nbsp; prop: {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fullname: 'Aurelio De Rosa',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; getFullname: function() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(this);//加上这一句 看看输出的this&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return this.fullname;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; };&nbsp; &nbsp; var test = obj.prop.getFullname;&nbsp; &nbsp; console.log((test)());&nbsp; &nbsp; console.log((obj.prop.getFullname)());
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript