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

Javascript 为已知键创建空对象或具有空值的对象,javascript,angularjs,object,Javascript,Angularjs,Object,几天以来,我一直在玩JavaScript和AngularJS,我不确定以下几点: 我正在进行一个示例项目,在该项目中,用户可以创建一辆新车,只需在JS对象中存储一些属性,如下所示: var car = { color: 'black', seating: 'leather', fuelconsumption: 'moderate' } var car = { color: null, seating: null, fuelconsumption:

几天以来,我一直在玩JavaScript和AngularJS,我不确定以下几点:

我正在进行一个示例项目,在该项目中,用户可以创建一辆新车,只需在JS对象中存储一些属性,如下所示:

var car = {
    color: 'black',
    seating: 'leather',
    fuelconsumption: 'moderate'
}
var car = {
    color: null,
    seating: null,
    fuelconsumption: null
}
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'
用户可以通过点击添加按钮创建一辆新车。Angular然后创建一个新的汽车实例,用户可以指定对新车的期望

但是,我应该创建一个空对象吗

var car = {}
并使用绑定文本输入添加所需的键,或者我应该做些不同的事情吗

由于新车的属性是先验的,我也可以创建一个对象,其中包含所需的键和
null
作为它们的值,如下所示:

var car = {
    color: 'black',
    seating: 'leather',
    fuelconsumption: 'moderate'
}
var car = {
    color: null,
    seating: null,
    fuelconsumption: null
}
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'

由于最佳实践等原因,哪种方法更可取?

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

 var car = {};

就像你那样。我认为这样做没有最好的做法。 但这些值可能应该指向保存此属性所需的数据类型

例如:

var car = { 
    color:"",
    seating: "",
    fuelconsumption: ""
};
在您的情况下,可以使用“”。

如果使用编号
NaN,则未定义

如果使用字符串

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


如果在Javascript中使用某种boolen值
true/false

,通常不需要将属性初始化为
null
。这是因为引用未初始化的属性只会无害地返回
未定义的
,这与
null
一样有效。这显然不同于其他一些语言(Java、C++),在这些语言中,必须先声明对象的属性,然后才能以任何方式引用它们

在你的例子中,我认为有意义的是创建一个构造函数来创建一个
car
对象,因为你可能会创建多个car,而在编写代码时,所有可能的car对象都不知道。因此,您可以创建一个构造函数,如下所示:

var car = {
    color: 'black',
    seating: 'leather',
    fuelconsumption: 'moderate'
}
var car = {
    color: null,
    seating: null,
    fuelconsumption: null
}
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'
然后,您可以创建一个新的汽车对象,如下所示:

var car = {
    color: 'black',
    seating: 'leather',
    fuelconsumption: 'moderate'
}
var car = {
    color: null,
    seating: null,
    fuelconsumption: null
}
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'