下面是我正在谈论的内容
class User {
constructor(name) {
this.name = name;
}
myFunction() {
return function() {
return this.name;
}
}
}
let kk = new User("kk");
let speak = kk.myFunction();
speak();
我收到此错误:
Uncaught TypeError: Cannot read property 'name' of undefined
最佳答案
您应该使用 this.name
来代替,并且该函数不应返回函数
class User {
constructor(name) {
this.name = name;
}
myFunction() {
alert(this.name);
return this.name;
}
}
let user = new User("jj").myFunction();
console.log(user)
编辑: 您现在编辑的问题与您发布的原始问题不同。这需要一个柯里化(Currying)解决方案:
class User {
constructor(name) {
this.name = name;
}
myFunction() {
let name = this.name;
return function() {
return name;
}
}
}
let kk = new User("kk");
let speak = kk.myFunction();
console.log(speak());
关于javascript - 如何调用方法 myFunction 来返回(名称) 我已经尝试了很多方法,但它不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59688572/