gpt4 book ai didi

Javascript 无法读取未定义的属性 'x'

转载 作者:行者123 更新时间:2023-12-04 00:51:14 25 4
gpt4 key购买 nike

我不明白下面代码中的错误。我尝试从另一个类调用另一个类的函数。但是我给出了错误 error: Uncaught TypeError: Cannot read property '_name' of undefined

class Person {
constructor() {
this._name = "Name-Person";
}

getName() {
return this._name;
}
}

class Test1 {
constructor() {
let p = new Person();
new Test2(p.getName);
}
}

class Test2 {
constructor(getName) {
console.log(getName());
}
}

new Test1()

如何修复错误?

最佳答案

将函数传递给 Test2 时,您需要将 p 绑定(bind)到函数

new Test2(p.getName.bind(p));

class Person {
constructor() {
this._name = "Name-Person";
}

getName() {
return this._name;
}
}

class Test1 {
constructor() {
let p = new Person();
new Test2(p.getName.bind(p));
}
}

class Test2 {
constructor(getName) {
console.log(getName());
}
}

new Test1()

关于Javascript 无法读取未定义的属性 'x',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66346100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com