概念
- 构造函数用于创建特定类型的对象——不仅声明了使用的对象,构造函数还可以接受参数以便第一次创建对象的时候设置对象的成员值。你可以自定义自己的构造函数,然后在里面声明自定义类型对象的属性或方法。
- 在JavaScript里,构造函数通常是认为用来实现实例的,JavaScript没有类的概念,但是有特殊的构造函数。通过new关键字来调用自定义的构造函数,在构造函数内部,this关键字引用的是新创建的对象。
拟物化理解
- 普通的门 -> 有花边和纹路的门
模式作用:
- 1.用于创建特定类型的对象。
- 2.第一次声明的时候给对象赋值。
- 3.自己声明构造函数,赋予属性和方法。
注意事项:
- 1.声明函数的时候处理业务逻辑。
- 2.区分和单例的却别,配合单例实现初始化。
- 3.构造函数大写字母开头。(建议)
- 4.注意new的成本。(继承)(方法放到原型链上面)
// 1.用于创建特定类型的对象
// 2.js里构造函数比较特殊的地方 new
// 3.其他的语言里 比如PHP 里人家实现 有一个关键字 A class
function zaomen(huawen) {
if (!(this instanceof zaomen)) {
return new zaomen(); //如果没有new这个构造函数的话,可以走这一步返回一个new的构造函数
}
var _huawen = '普通';
if (huawen) {
_huawen = huawen;
}
this.suo = '普通';
this.huawen = _huawen;
this.create = function () {
return '【锁头】' + this.suo + '【花纹】' + this.huawen
}
}
var xiaozhang = new zaomen();
alert('xiaozhang' + xiaozhang.create())
var xiaoli = new zaomen('绚丽')
alert(xiaoli.create())