new
new
运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。
可以对已定义的对象添加新的属性。例如,给 car1
添加一个新的属性 color
,并给这个属性赋值 “black
“,但这不会影响任何其他对象。要将新属性添加到相同类型的所有对象,则必须将该属性添加到 Car
对象类型的定义中。
也可以使用 Function.prototype
属性将共享属性添加到以前定义的对象类型。这定义了一个由该函数创建的所有对象共享的属性,而不仅仅是对象类型的其中一个实例。
1 | function Car() {} |
如果你没有使用
new
运算符, 构造函数会像其他的常规函数一样被调用, 并不会创建一个对象。在这种情况下,this
的指向也是不一样的。
对象类型和对象实例
假设你要创建一个汽车的对象类型。你希望这个类型叫做car,这个类型具备make, model, year等属性
1 | function Car(make, model, year) { |
对象属性为其他对象
假设你定义了一个对象叫做 person
:
1 | function Person(name, age, sex) { |