gpt4 book ai didi

javascript - es5 类中的方法链

转载 作者:行者123 更新时间:2023-11-28 17:44:02 24 4
gpt4 key购买 nike

CurrentUser = function (){}
CurrentUser.prototype = {
record: undefined
}
CurrentUser.prototype.is = {
get _parent() {return CurrentUser.prototype},

get signedIn() {
return !!this._parent.record
}
}
User = new CurrentUser
User.record = {name:'Joe'}
User.is.signedIn //false

我在这里想做的是创建一个新用户,给他一些数据(记录),并据此确定他已登录(如果他的记录有数据 - 他已登录)。

但实际情况是,User.is.signedIn getter 正在访问CurrentUser.prototype,而不是访问User 实例。由于 CurrentUser.prototype.record未定义 - User.is.signedIn 返回 false

最佳答案

您似乎正在寻找

CurrentUser = function (){}
CurrentUser.prototype = {
record: undefined,
get is() {
var parent = this;
return {
get signedIn() {
return !!parent.record;
}
};
}
};
var user = new CurrentUser
user.record = {name:'Joe'}
user.is.signedIn // true

但是我真的建议避免这种情况。在原型(prototype)上放置一个简单的 isSignedIn() 方法并使用它来完成。

关于javascript - es5 类中的方法链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47227020/

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