首頁  >  問答  >  主體

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 天前417

全部回覆(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
  • 取消回覆