gpt4 book ai didi

javascript - 从默认值访问静态属性

转载 作者:行者123 更新时间:2023-11-29 20:03:56 26 4
gpt4 key购买 nike

我有以下模型:

    var User = Backbone.Model.extend({
defaults: {
status: this.constructor.status.OFFLINE,
},
},
{
status: {
OFFLINE: 0,
ONLINE: 1,
BUSY: 2,
AWAY: 3,
},
}
);

我也试过:

status:     User.status.OFFLINE

但我一直收到这个错误:

TypeError: 'undefined' is not an object (evaluating 'this.constructor.status.OFFLINE')

或者这个:

TypeError: 'undefined' is not an object (evaluating 'User.status')

有什么帮助吗?谢谢

最佳答案

您正在尝试引用在创建用户模型时未定义的静态属性。

将你的默认值定义为一个函数

var User = Backbone.Model.extend({
defaults: function() {
return {status: User.status.OFFLINE}
}
}, {
status: {
OFFLINE: 0,
ONLINE: 1,
BUSY: 2,
AWAY: 3
}
});

http://jsfiddle.net/nikoshr/6XuC8/

或者先定义你的静态属性,然后扩展 User.prototype 添加你的默认值:

var User = Backbone.Model.extend({}, {
status: {
OFFLINE: 0,
ONLINE: 1,
BUSY: 2,
AWAY: 3
}
});

_.extend(User.prototype, {
defaults: {
status: User.status.OFFLINE
}
});

var u = new User();
console.log(u.get('status'));

http://jsfiddle.net/nikoshr/6XuC8/2/

关于javascript - 从默认值访问静态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13012790/

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