Warum wird „undefiniert“ gedruckt? Wie kann ich dafür sorgen, dass dieser Code jeweils global, obj und inner gedruckt wird?
var scope = 'global';
function log() {
console.log(this.scope)
}
var obj = {
scope: 'obj',
do: function () {
var scope = 'inner';
log()
}
};
obj.do();
最后对象志向window,window.scope,返回的才是undefined
this指向问题
JS函数不同执行环境下的this指向
首先,这段代码打印出来的应该是global不是undefined,然后你这种写法inner是不可能通过this.scope来调用的,剩下的就去看看this指向吧
var scope = 'global';
function log() {
}
var obj = {
};
obj.do();