【发布时间】:2026-01-10 13:50:02
【问题描述】:
下面是我要说的
class User {
constructor(name) {
this.name = name;
}
myFunction() {
return function() {
return this.name;
}
}
}
let kk = new User("kk");
let speak = kk.myFunction();
speak();
我收到此错误:
未捕获的类型错误:无法读取未定义的属性“名称”
【问题讨论】:
-
不可能调用
myFunction来返回当前写入的名称。 -
返回后提醒。那条线永远不会运行。
-
欢迎来到 Stack Overflow,您到底想做什么?如果你想要一个新的
User,那么你应该把它分配给const jj = new User("jj");。然后您可以将函数分配给const speak = jj.myFunction()并使用speak()调用它。您的函数将返回名称,但它不会在您的return语句之后发出警报 -
您的函数现在正在返回一个函数...此外,在您的方法
myFunction范围内,对name的引用必须绑定到this,即this.name。我认为您必须更具体地了解您对该功能的意图才能获得合理的答案。因为,我不确定你为什么要返回一个函数,除非这是你的意图。
标签: javascript