使用';新';javascript中的关键字?

使用';新';javascript中的关键字?,javascript,Javascript,我是否可以使用对象语法创建car3,而不指定对象make、model和year中的键?范例 function car( make, model, year ){ this.make = make; this.model = model; this.year = year; } var car1 = new car( "toyota", "supra", 1995 ); var car2 = new car( "nissan", "gtr", "1999" ); 这是另一种选择: c

我是否可以使用对象语法创建car3,而不指定对象make、model和year中的键?范例

function car( make, model, year ){

 this.make = make;
 this.model = model;
 this.year = year;

}

var car1 = new car( "toyota", "supra", 1995 );
var car2 = new car( "nissan", "gtr", "1999" );

这是另一种选择:

car3 {
 make: "mazda", 
 model: "rx7",
 year: "2002"
}
您还可以创建一辆空车(make\year\model未定义),如下所示:

var car1 = {make: "nissan", model: "gtr",year: "1999" }

您可以在以后将其填满:

var car1 = new car();

这是另一种选择:

car3 {
 make: "mazda", 
 model: "rx7",
 year: "2002"
}
您还可以创建一辆空车(make\year\model未定义),如下所示:

var car1 = {make: "nissan", model: "gtr",year: "1999" }

您可以在以后将其填满:

var car1 = new car();

这里还有一个选择:

car1.make = "nissan";

这里还有一个选择:

car1.make = "nissan";

答案是:不,我不太明白你问题的重点。在这两个示例中,您都指定了品牌、型号和年份。因此,我有两个猜测:

第一个猜测。您需要一个没有参数的构造函数-这很简单,因为JavaScript中可以省略参数值:

function car(a,b,c){
  return {
    a:a, b:b, c:c 
  };
}
var x = car(1,2,3);
var y = car(4,5,6);
第二种猜测。您希望使用对象表示法,因为您喜欢它。对象表示法在不使用构造函数的情况下创建对象,但您可以将该对象用作输入:

function car( make, model, year ) {
    this.make = make || "";
    this.model = model || "";
    this.year = year || 0;
}

答案是:不,我不太明白你问题的重点。在这两个示例中,您都指定了品牌、型号和年份。因此,我有两个猜测:

第一个猜测。您需要一个没有参数的构造函数-这很简单,因为JavaScript中可以省略参数值:

function car(a,b,c){
  return {
    a:a, b:b, c:c 
  };
}
var x = car(1,2,3);
var y = car(4,5,6);
第二种猜测。您希望使用对象表示法,因为您喜欢它。对象表示法在不使用构造函数的情况下创建对象,但您可以将该对象用作输入:

function car( make, model, year ) {
    this.make = make || "";
    this.model = model || "";
    this.year = year || 0;
}

在JavaScript中,必须使用关键字“new”来创建对象

使用代码:

function car( parameters ) {
    this.make = parameters.make;
    this.model = parameters.model;
    this.year = parameters.year;
}

var car = new car( { make: "mazda", model: "rx7", year: "2002" });
将生成包含这些属性的JSON,但不是汽车

您可以使用以下代码检查是否正在生成“汽车”对象:

var car = {make: "nissan", model: "gtr, year: "1999"}

在JavaScript中,必须使用关键字“new”来创建对象

使用代码:

function car( parameters ) {
    this.make = parameters.make;
    this.model = parameters.model;
    this.year = parameters.year;
}

var car = new car( { make: "mazda", model: "rx7", year: "2002" });
将生成包含这些属性的JSON,但不是汽车

您可以使用以下代码检查是否正在生成“汽车”对象:

var car = {make: "nissan", model: "gtr, year: "1999"}

我不明白你的问题。您说您想“创建car3…但不指定品牌、型号和年份”。那你想具体说明什么呢?您只需要一个空对象吗?不需要指定“make”一词,也不需要指定“model”一词和“year”一词,但我需要指定值。我认为您需要扩展示例以显示您想要的是什么exactly@nacholibre:new不会创建函数的新实例。它创建了一个新对象并使用函数作为构造函数。@chiccodoro你说得对:)我不明白你的问题。您说您想“创建car3…但不指定品牌、型号和年份”。那你想具体说明什么呢?您只需要一个空对象吗?不需要指定“make”一词,也不需要指定“model”一词和“year”一词,但我需要指定值。我认为您需要扩展示例以显示您想要的是什么exactly@nacholibre:new不会创建函数的新实例。它创建了一个新对象,并使用函数作为构造函数。@chiccodoro你是对的:)我认为答案完全正确,回答了这个问题。我看不出有理由否决投票。(我承认我采用了完全不同的方法,但考虑到这个非常开放的问题,很难给出“错误”或“糟糕”的答案。)我认为答案完全正确,回答了这个问题。我看不出有理由否决投票。(我承认我采用了完全不同的方法,但考虑到这个非常开放的问题,很难给出“错误”或“糟糕”的答案。)我不同意。您不必使用“new”来创建对象,而且您的第一个代码段并不创建JSON,而是创建了一个对象。JSON是一种序列化格式,而不是JavaScript实体。它经常与JS对象混淆,因为JSON是从JavaScript对象文本语法派生的(或者更准确地说,是其子集)。使用
new
的唯一原因是使用构造函数创建对象,从而为对象提供特定的“原型”。当我使用“if(car instanceof car)”时,它没有使用第一个示例进行验证。不同意。您不必使用“new”来创建对象,而且您的第一个代码段并不创建JSON,而是创建了一个对象。JSON是一种序列化格式,而不是JavaScript实体。它经常与JS对象混淆,因为JSON是从JavaScript对象文本语法派生的(或者更准确地说,是其子集)。使用
new
的唯一原因是使用构造函数创建对象,从而为对象提供特定的“原型”。当我使用“if(car instanceof car)”时,它没有使用第一个示例进行验证。