在下面的代码片段中,我试图访问name,它是一个成员函数sayHi的成员变量。我怎么能这样做?
obj = {
name:"John",
sayHi: ()=>{
console.log("Hi " + name);
}
}
obj.sayHi();
答案 0 :(得分:3)
箭头函数表达式最适合非方法函数。您希望sayHi
使用name
的{{1}}属性。
因此,您希望使用obj
作为方法,
在这种情况下,箭头功能不适合此目的。
如果将箭头函数表达式更改为匿名函数,
然后,您可以使用sayHi
来引用您将调用this.name
函数的对象的name
属性:
sayHi
关于箭头函数表达式的一个很好的资源是developer.mozilla.org上的这个页面。
答案 1 :(得分:0)
你不必使用像@janos这样的匿名函数。当您使用箭头函数时,this
指的是定义对象的类或上下文。因此,您可以通过调用this.obj.name
来调用名称,如下所示:
obj = {
name:"John",
sayHi: ()=>{
console.log("Hi " + this.obj.name);
}
}
obj.sayHi();