alb*_*ert 5 javascript object angularjs
几天后我正在使用JavaScript和AngularJS,我不确定以下内容:
我正在开发一个示例项目,在该项目中,用户可以使用存储在JS对象中的一些属性来创建新车,如下所示:
var car = {
color: 'black',
seating: 'leather',
fuelconsumption: 'moderate'
}
Run Code Online (Sandbox Code Playgroud)
用户可以通过单击添加按钮来创建新车.然后Angular创建一个新的汽车实例,用户可以指定新车的愿望.
但是,我应该创建一个像空的对象
var car = {}
Run Code Online (Sandbox Code Playgroud)
并使用绑定的文本输入添加所需的键或我应该做一些不同的事情?
由于新车的属性是先验已知的,我还可以使用所需的键创建一个对象,并将null它们的值设置为:
var car = {
color: null,
seating: null,
fuelconsumption: null
}
Run Code Online (Sandbox Code Playgroud)
由于例如最佳实践,哪种方式更可取?
你可以两种方式都这样做。我更喜欢使用创建空对象{},然后添加所需的道具,但您可以通过使用值的初始化定义道具来实现:
var car = {};
Run Code Online (Sandbox Code Playgroud)
或者
var car = {
color: null,
seating: null,
fuelconsumption: null
};
Run Code Online (Sandbox Code Playgroud)
就像你做的那样。我不认为有这样做的最佳实践。但也许这些值应该指向保存此属性的所需数据类型。
例子:
var car = {
color:"",
seating: "",
fuelconsumption: ""
};
Run Code Online (Sandbox Code Playgroud)
在你的情况下,“”很好。
如果使用 number NaN, undefined。
如果使用字符串""。
如果使用对象或数组{} []。
如果使用某种布尔值 true/false
在Javascript中,通常不需要初始化属性null.这是因为引用一个尚未初始化的属性只是无害的返回undefined,它可以正常工作null.这明显不同于其他语言(Java,C++),其中必须先声明对象的属性,然后才能以任何方式引用它们.
我认为在你的情况下可能有意义的是创建一个用于创建car对象的构造函数,因为你可能会创建多个汽车,并且在编写代码时不会知道所有可能的汽车对象.所以,你创建一个这样的构造函数:
function Car(color, seating, fuel) {
this.color = color;
this.seating = seating;
this.fuelConsumption = fuel;
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以像这样创建一个新的Car对象:
var c = new Car('black', 'leather', 'moderate');
console.log(c.color); // 'black'
Run Code Online (Sandbox Code Playgroud)