在经典的面向对象编程语言中,Constructor是一种在内存已分配给该对象的情况下,用于初始化新创建对象的特殊方法。在JavaScript中,几乎所有的东西都是对象,我们通常最感兴趣的就是Object构造器。
Object构造器用于创建特定类型的对象——准备好对象以备使用,同时接收构造器可以使用的参数,以在第一次创建对象时,设置成员属性和方法的值。
(1) 对象创建
① var newObject = {};
② var newObject = new Object();
赋值:
ECMAScript 3兼容方式
1. 点语法
// 设置属性 newObject.someKey = ‘Hello World‘; // 获取属性 var key = newObject.someKey;
2. 中括号语法
// 设置属性 newObject[‘someKey‘] = ‘Hello World‘; // 获取属性 var key = newObject[‘someKey‘];
只适用于ECMAScript 5的方式
3. Object.defineProperty
// 设置属性 Object.defineProperty( newObject , ‘somekey‘ , { value : ‘I love You‘, writable : true, enumerable : true, configurable : true } );
4. Object.defineProperties
// 设置属性 Object.defineProperties( newObject , { ‘somekey‘ : { value : ‘I love You‘, writable : true, enumerable : true, configurable : true }, ‘anotherkey‘ : { value : ‘I Hate You‘, writable : true, enumerable : true, configurable : true } } );
(2) 带原型的Constructor(构造器)
调用JavaScript构造器创建一个对象后,新对象就会具有构造器原型的所有属性。
例如:
// 创建构造器 function Car( model , year , miles ) { this.model = model; this.year = year; this.miles = miles; } Car.prototype.toString = function () { return this.model + ‘ has done ‘ + this.miles + ‘ miles‘; }; // 用法 var civic = new Car ( ‘Honda Civic‘ , 2015 , 20000 ); console.log(civic.toString()); // Honda Civic has done 20000 miles
现在toString()的单一实例就能在所有Car对象之间共享了。
时间: 2024-10-13 19:37:51