首先我们要知道:什么是模式?
模式,就是专门为某些常见问题开发的、优秀的解决方案。它通常经过一系列实践证明、针对某类问题具有可重用性的解决方案。 而设计模式,不同于编程模式,其与具体的语言无关。
1.Constructor构造器模式
1.1基础Constructor构造器模式
// 使用函数来模拟一个Car类
代码语言:javascript复制function Car(model,year,miles) {
this.model = model ;
this.year = year;
this.miles = miles;
this.toString = function () {
return this.model "已经行驶了" this.miles "米";
}
}
//调用
var honda = new Car("东风Honda",2009,20000);//实例化Car
//输出结果
console.log(honda.toString());
缺陷:
- 继承困难;
- toString()是为每个使用Car构造器创建的新对象而分别重新定义的。这样不理想,因为这种函数应该在所有的Car类实力之间共享。
1.2进阶 带原型的Constructor构造器模型
代码语言:javascript复制function Car(model,year,miles) {
this.model = model ;
this.year = year;
this.miles = miles;
//每个对象都有构造器原型的所有属性。
Car.prototype.toString = function() {
return this.model "已经行驶了" this.miles "米";
}
}
//调用
var honda = new Car("东风Honda",2009,20000);//实例化Car
console.log(honda.toString());
优点:
- toString()的单一实例能够在所有的Car对象之间共享。