gpt4 book ai didi

javascript - 在 Backbone 中,您是否在实例化之前定义模型的属性?

转载 作者:行者123 更新时间:2023-11-30 10:23:13 25 4
gpt4 key购买 nike

我正在学习 backbone.js。在 various tutorials他们通过扩展 Backbone.Model

来定义特定的 Backbone 模型

例如:

Person = Backbone.Model.extend({
initialize: function(){
alert("Welcome to this world");
}
});

我对一个基本点有点疑惑:在backbone中,你是否提前定义了模型的属性?例如,您能否定义一个只能包含两个字段的人员模型:姓名和年龄?

根据我创建 Java 或 C# 类的经验,我希望您定义与模型关联的属性的方式与定义与对象关联的字段的方式大致相同。但这似乎不是 backbone.js 的工作方式。似乎您通过在实例化期间设置这些属性来定义与模型关联的属性。例如,您通过实例化一个实例并设置这些字段来在人物模型中创建年龄和姓名字段。 var person = new Person({ name: "Thomas", age: 67}); 正确吗?

与此相关,您能否使用 javascript 对象执行此操作?我知道 javascript 是解释的而不是编译的,所以没有编译时检查类中的哪些字段正在设置/访问——但我认为运行时检查是可能的。

最佳答案

如果您需要设置一些默认值,您只需将属性定义为模型定义的一部分:

Person = Backbone.Model.extend({
defaults: {
"species": "homo sapiens"
},

initialize: function () {
alert("Welcome to this world");
}
});

除此之外,属性将只是您放入模型中的任何对象的属性。所以这是一个例子:

var examplePerson =  new Person({ firstName: "Johnny", lastName: "Smith", age: 30 });

现在 firstName、lastName、age 和 species 是模型实例的属性。如果您想对设置的值进行验证,请为 Backbone 的 validate 提供一个实现。方法。

关于javascript - 在 Backbone 中,您是否在实例化之前定义模型的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20790376/

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