为已知键创建具有空值的空对象或对象

时间:2015-11-15 23:30:46

标签: javascript angularjs object

我几天都在使用JavaScript和AngularJS,我不确定以下内容:

我正在开发一个示例项目,在该项目中,用户可以创建一个新车,只有几个属性存储在JS对象中,如下所示:

parquet.hadoop.ParquetFileReader: Initiating action with parallelism: 5

用户可以通过单击添加按钮来创建新车。然后Angular创建一个新的汽车实例,用户可以指定新车的愿望。

但是,我应该创建一个像

这样的空对象
var car = {
    color: 'black',
    seating: 'leather',
    fuelconsumption: 'moderate'
}

并使用绑定的文本输入添加所需的键,或者我应该做些不同的事情?

由于新车的属性是先验已知的,我还可以使用所需的键创建一个对象,并将var car = {} 作为它们的值,如下所示:

null

由于例如,哪种方式更优选最佳实践?

2 个答案:

答案 0 :(得分:6)

在Javascript中,通常无需将属性初始化为undefined。这是因为引用尚未初始化的属性只是无害地返回null,它可以像car一样工作。这显然不同于其他语言(Java,C ++),其中必须先声明对象的属性,然后才能以任何方式引用它们。

我认为在你的情况下可能有意义的是创建一个构造函数来创建一个function Car(color, seating, fuel) { this.color = color; this.seating = seating; this.fuelConsumption = fuel; } 对象,因为你可能会创建多个汽车而且所有可能的汽车对象都不会在你编写代码的时间。所以,你创建一个这样的构造函数:

var c = new Car('black', 'leather', 'moderate');
console.log(c.color);   // 'black'

然后,您可以像这样创建一个新的Car对象:

rex

答案 1 :(得分:4)

你可以两种方式做到这一点。我更喜欢使用{}创建空对象,然后添加所需的道具,但您可以通过使用值的初始化定义道具来实现:

 var car = {};

var car = { 
    color: null,
    seating: null,
    fuelconsumption: null
};

就像你一样。我不认为有这样做的最佳做法。 但是,值可能会指出保存此属性所需的数据类型。

示例:

var car = { 
    color:"",
    seating: "",
    fuelconsumption: ""
};

在你的情况下,“”很好。

如果使用数字NaN, undefined

如果使用字符串""

如果使用对象或数组{} []

如果使用某种boolen值true/false