首页  >  问答  >  正文

javascript - this问题

为什么打印 undefined?怎么才能让这段代码分别打印global,obj和inner

var scope = 'global';

function log() {
    console.log(this.scope)
}

var obj = {
    scope: 'obj',
    do: function () {
        var scope = 'inner';
        log()
    }
};

obj.do();
仅有的幸福仅有的幸福2711 天前419

全部回复(5)我来回复

  • 高洛峰

    高洛峰2017-05-19 10:25:39

    最后对象志向window,window.scope,返回的才是undefined

    回复
    0
  • 高洛峰

    高洛峰2017-05-19 10:25:39

    雷雷

    回复
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-19 10:25:39

    this指向问题
    JS函数不同执行环境下的this指向

    回复
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-19 10:25:39

    首先,这段代码打印出来的应该是global不是undefined,然后你这种写法inner是不可能通过this.scope来调用的,剩下的就去看看this指向吧

    回复
    0
  • PHP中文网

    PHP中文网2017-05-19 10:25:39

    var 范围 = '全局';

    函数日志() {

    雷雷

    }

    var obj = {

    雷雷

    };

    obj.do();

    回复
    0
  • 取消回复