Javascript 在对象内部的函数中访问对象的属性

Javascript 在对象内部的函数中访问对象的属性,javascript,object,Javascript,Object,这只是一个毫无意义的例子,但它完美地描述了我的问题 以下对象函数调用为bird属性提供undefined: const birds = { species:['Grey tinamou','Greater rhea','Dwarf cassowary'], bird: 'Bird', summary: function(){ return this.species.map(function(species) { return `${species} is a ${this.bir

这只是一个毫无意义的例子,但它完美地描述了我的问题

以下对象函数调用为
bird
属性提供
undefined

const birds = {
 species:['Grey tinamou','Greater rhea','Dwarf cassowary'],
 bird: 'Bird',
 summary: function(){
  return this.species.map(function(species) {
   return `${species} is a ${this.bird}`;
  });
 }
};

birds.summary();
1) 如何访问对象函数中的
bird
属性

2.1)我是否可以在不传入
bird
属性本身的值的情况下执行此操作

这样:
birds.summary(birds.bird)


2.2)是否有更好的/另一种方法可以做到这一点?

在常规函数中,
这是调用函数的对象。如果调用
birds.func()
,则在该函数中
this===birds
。如果像调用
func()
一样调用该函数,则上下文将是
窗口
在严格模式下未定义
)。在传递给map的回调函数中,
窗口
未定义
。arrow函数的工作方式不同-它从声明它的上下文继承此

使用()=>{}从函数
摘要中继承

this.species.map((species) => {...

请阅读。

谢谢您的回答!很抱歉打扰您,但这篇文章能帮我回答这个问题吗?为什么鸟属性可以在箭头函数中访问而不是使用常规函数?如果您是这么问的话,我懂俄语。@VitalyPlatonovаа,эааааааааааааааааааа107,本规范。鸟类。func(),фцццццццццццццццццц鸟。ааааааааа功能(),аааааааааааааааааааааааа。афааааааааааааааааааа映射,
未定义
。Сааааааааааааааааааа-ааааааааааааааа,аааааааааа1072!我将浏览这篇文章,稍后编辑你的答案,这样其他人可以从中受益(文章的链接可能会断开)。如果你在我之前就这么做了,让我知道我会把它标记为已接受,谢谢。