首页 > 代码库 > 《JavaScript设计模式》深入学习 —— Constructor(构造器)模式

《JavaScript设计模式》深入学习 —— Constructor(构造器)模式

在经典的面向对象编程语言中,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对象之间共享了。

《JavaScript设计模式》深入学习 —— Constructor(构造器)模式