首页 > 其他分享 >js面试题

js面试题

时间:2023-02-23 16:58:29浏览次数:37  
标签:面试题 obj name show js var setTimeout 函数

说明:setTimeout函数的延迟执行函数中this指向window,但是延迟执行函数是箭头函数this指向obj

var name='nico';
var obj={
    name:'coco',
    show:function(){
        console.log(this.name)
    }
}
setTimeout(obj.show)

打印结果为:nico

 由于setTimeout()调用的代码运行在与所在函数完全分离的执行环境上,这会导致,这些代码种包含的this关键字在非严格模式下会指向window(或全局)对象,严格模式下为undefined。(备注:即使在严格模式下,setTimeout的回调函数里面的this仍然默认指向window对象,并不是undefined)

var name = 'nico';
var obj = {
  name: 'coco',
  show: function () {
    console.log(this.name);
  },
};
setTimeout(() => {
  obj.show();
});

打印结果为:coco

标签:面试题,obj,name,show,js,var,setTimeout,函数
From: https://www.cnblogs.com/nicoz/p/17148616.html

相关文章