这只是一个废话的例子,但它完美地描述了我的问题。
对象函数的以下调用为undefined
属性提供了bird
:
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)有没有更好/另一种方法?
答案 0 :(得分:0)
在常规函数中,this
是调用该函数的对象。如果调用birds.func()
,则在此函数this === birds
中。如果像func()
一样调用函数,则上下文将为window
(严格模式下为undefined
)。在传递给地图的回调函数中,this
是window
或undefined
。箭头函数的工作方式不同-它从声明的上下文继承this
。
使用()=> {}从函数this
继承summary
:
this.species.map((species) => {...
并阅读有关this的信息。