在JavaScript中,有四种方法可用于创建对象:
- 对象文字
- New运算符或构造函数
- Object.create方法
- 类
在这篇文章中,我们将学习这些方法。
对象文字
对象文字,也称为对象初始值设定项,是一组以逗号分隔的成对名称和值。您可以创建一个对象文字,如下所示:
var car = {型号: 'bmw',颜色: '红色',价格: 2000}控制台。日志(JSON。stringify(汽车));
您可以在对象中动态添加属性,包括在创建对象之后。在这里,我们添加car.type动态属性:
var car = {型号: 'bmw',颜色: '红色',价格: 2000}控制台。日志(JSON。stringify(汽车));car.type = 'manual'; // 动态属性console.log (JSON.stringify (car ));
对象文字是一个简单的表达式,每次在代码中执行出现的语句时创建一个对象。您还可以使用object.Defineprperty在对象文字中创建属性,如下所示:
var car = {型号: 'bmw',颜色: '红色',价格: 2000} 对象。定义属性(汽车,"类型",{writable: true,可枚举: true,可配置: false,值: “ gas”});控制台。日志(汽车。类型);// 气体
使用object.Defineprperty的主要优点是可以设置对象属性描述符的值或修改现有属性。您可以在此处了解更多关于对象属性描述符的信息
New运算符或构造函数
创建对象的第二种方法是使用构造函数。如果使用new运算符调用函数,则该函数将充当构造函数并返回一个对象。考虑下面的代码:
功能汽车(型号,颜色){这个.model = 模型;这个.color = 颜色;} var c1 = 新汽车 ('BMW','red ');控制台。日志(c1。型号);
这种创建对象的方法也称为构造函数调用模式 (Constructor Invocation Pattern)。使用构造函数有两个步骤:
- 创建一个函数,它将定义对象类型。
- 使用创建对象的实例新建操作员。
要创建Student对象,首先创建一个如下所示的函数。在此示例中, 这表示正在创建的对象,因此name和age将是新创建的对象的属性。
功能学生(姓名,年龄){this.name = name;这个.年龄 = 年龄;}
接下来,创建Student对象类型的实例,如下所示:
var s1 = 新学生 (7为 'foo',);控制台。日志(s1。姓名);var s2 = 新学生 (9,'koo' );控制台。日志(s2。姓名);
您可以使用instanceof运算符来查找实例的类型,并确定s1是否为Student对象的实例,如下所示:
var s1 = 新学生 (9为 'foo',);控制台。日志(s1instanceof学生);
您还可以使用object.Definepproperty在构造函数中创建属性,如下所示:
车 (车型)
功能 {对象。定义属性(这,"模型",{writable: true,可枚举: true,可配置: false,值: 模型});} varmyCar=新建汽车(“奥迪A3”);控制台。日志(myCar。型号);// 奥迪A3
使用object.Defineproperty的主要优点是可以设置对象属性描述符的值。您可以在此处了解更多关于对象属性描述符的信息
Object.create方法
您还可以使用Object.create() 方法创建新对象,该方法允许您指定原型对象和属性。例如:
var Car = {型号: 'BMW',颜色 “红色”:}
您可以使用Car对象作为原型来创建另一个对象,如下所示:
ElectricCar
var = 对象。创建 (Car);控制台。日志(电动车。型号);// 宝马
在本例中,您已经使用Car对象作为原型创建了一个名为ElectricCar的对象,因此ElectricCar对象将具有Car对象的所有属性。您还可以添加如下所示的属性:
ElectricCar
var = 对象。创建 (汽车,{类型: {值: “ 电”,writable: true,可配置: false,可枚举: true}});控制台。日志(电动车。类型);// 电动
属性应该作为对象传递,并且可以使用属性描述符进行设置。还可以使用Object.create方法在对象之间创建继承。
类
ECMAScript 6引入了class关键字来在JavaScript中创建类。现在,您可以使用class属性在JavaScript中创建一个类,而不是一个函数构造函数,并使用new运算符创建一个实例。考虑下面的代码:
汽车
级 { constructor (maker,price) {这个.制造者 = 制造者;这个.价格 = 价格;} getInfo () {控制台。日志(这。制造者 "费用:" 这。价格);}}
您可以使用Car类创建对象,如下所示:
var car1 = 新汽车 (100,“宝马” );car1。getInfo的 ();var car2 = 新汽车 (150,“奥迪” );car2。getInfo ();
结论
在JavaScript中有四种创建对象的方法-使用对象文字、使用函数构造函数、使用object.create方法和使用class关键字 (与使用函数构造函数几乎相同)。当您需要使用现有对象作为原型创建对象时,Object.create方法非常有用。
在下一篇文章中,我们将深入探讨JavaScript的其他方面。同时,不要忘记查看Ignite UI for JavaScript/HTML5和ASP.NET MVC ,您可以将其与HTML5,Angular,React和ASP.NET MVC一起使用来创建富Internet应用程序。您可以免费下载试用版我们所有的JavaScript控件。</p