Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么会有这样的背景?_Javascript - Fatal编程技术网

Javascript 为什么会有这样的背景?

Javascript 为什么会有这样的背景?,javascript,Javascript,为什么7行返回对象窗口 为什么不是运动对象 var sport = { caption: "2017", players : [{"name":"cat"},{"name":"dog"}] , show: function() { this.players.forEach(function(entry) { console.log(entry.name); console.log(this);//window }); } } sport.show(); 此指

为什么7行返回对象窗口

为什么不是运动对象

var sport = {
caption: "2017",
players :  [{"name":"cat"},{"name":"dog"}] ,
show: function() {
  this.players.forEach(function(entry) {
      console.log(entry.name);
      console.log(this);//window
  });
}
}

sport.show();

指的是它所在的匿名函数的作用域,即窗口

var sport={
玩家:[1,2,3],
show:function(){
this.players.forEach(函数(条目){
控制台日志(条目);
//这是指匿名函数的作用域,即窗口
console.log(this);
});
}
}
//体育节目();
变量sport2={
玩家:[3,4,5],
show:function(){
//这是指它所在的对象范围-
//在这种情况下,这将是“sport2”
var self=这个;
this.players.forEach(函数(条目){
控制台日志(条目);
//在sport2范围内,self现在是“this”的同义词。
控制台日志(self);
});
}
}

sport2.show()使用箭头函数。此函数的范围取决于执行上下文,并且是后期绑定的。搜索SO和web,您会发现很多关于这方面的讨论。”如果为forEach()提供thisArg参数,它将用作回调函数的this值。否则,未定义的值将用作其this值。回调函数最终可观察到的this值将根据确定函数所见this值的常规规则来确定。“-
“使用严格”
为什么它是
sport
对象而不是
sport.players
数组?为什么是下一票?因为
这个
几乎从来没有提到过函数建议:在函数中你可以定义
var self=this
@Nayuki它也不起作用,因为什么时候该方法被称为它的上下文它的windows对象如果答案是可以接受的,请检查并删除否决票。我不想误导未来的人。