提问人:kbl 提问时间:9/17/2023 更新时间:9/17/2023 访问量:14
如何在 Javascript 中实现带有闭包的继承
How to implement inheritance with closure in Javascript
问:
我被要求实现带有闭包的 JS 继承。我有以下代码。
function CreateUser(name, age) {
let sharedFunctionalities = {
sayName() {
console.log(this.name);
},
};
return function () {
this.name = name;
this.age = age;
this.sharedFunctionalities = () => sharedFunctionalities;
};
}
let user = new (CreateUser("jane", 22))();
console.log(user); // {name: 'jane', age: 22, sharedFunctionalities: [Function (anonymous)]}
user.sharedFunctionalities().sayName(); // undefined
我找不到在 sayName 函数中绑定 this 关键字的方法,以便它指向当前对象而不是 sharedFunctionalities 对象。有人可以帮忙吗?我能做到
user.sharedFunctionalities().sayName.call(user)
但这使得代码比现在更笨拙。谢谢。
答: 暂无答案
下一个:在JS中做范围和闭包[复制]
评论