使用' new'的替代方案是什么? javascript中的关键字?

时间:2014-11-28 13:30:00

标签: javascript

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,model和year中的键吗?示例

car3 {
 make: "mazda", 
 model: "rx7",
 year: "2002"
}

4 个答案:

答案 0 :(得分:1)

这是另一种选择:

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

您还可以创建一个空车(make \ year \ model将是未定义的),如下所示:

var car1 = {};

var car1 = new car();

您可以稍后填写:

car1.make = "nissan";

答案 1 :(得分:0)

答案是:不,我没有完全明白你的问题。在这两个示例中,您都可以指定品牌,型号和年份。所以我的两个猜测:

首先猜测。你想要一个没有参数的构造函数 - 这很简单,因为在JavaScript中可以省略参数值:

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

第二次猜测。您想使用对象表示法,因为您喜欢它。对象表示法在不使用构造函数的情况下创建对象,但您可以将该对象用作输入:

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" });

答案 2 :(得分:-1)

这是另一种选择:

function car(a,b,c){
  return {
    a:a, b:b, c:c 
  };
}
var x = car(1,2,3);
var y = car(4,5,6);

答案 3 :(得分:-1)

在JavaScript中,您必须使用关键字" new"创建对象。

使用代码:

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

将制作包含这些属性的JSON,但不包含汽车。

你可以检查一下你是否正在制造汽车"是否使用此代码:

//var obj previously defined/set/created
if(obj instanceof car) { /*code to confirm class*/ }