函数中this指向问题

document.getElementById( 'div1' ).onclick = function(){

    console.log( this.id );

    var func = function(){ 

        console.log ( this.id );

    } 

    func();

}; 

请问上面func中的this为什么会指向window?


我的理解是func执行时所在的上下文环境是onclick函数。所以this应该指向该函数,同样的下面的函数我倒是很好理解,因为定时器延迟了函数的执行,所以里面的this应该指向window,但是上面的函数没有定时器啊


function foo() {

  setTimeout(() => {

    console.log('id:', this.id);

  }, 100);

}


var id = 21;

foo(); //21(没有用call)


牛魔王的故事
浏览 560回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript