首先我们要知道:什么事模式?
模式,就是专门为某些常见问题开发的、优秀的解决方案。它通常经过一系列实践证明、针对某类问题具有可重用性的解决方案。
而设计模式,不同于编程模式,其与具体的语言无关。
1.Constructor构造器模式
1.1基础Constructor构造器模式
// 使用函数来模拟一个Car类
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构造器模型
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对象之间共享。