我一直在研究
Javascript中的设计模式,发现
http://tcorral.github.com/Design-Patterns-in-Javascript/Template/withoutHook/index.html是一个很好的来源.
anyonne可以解释使用ParentClass.apply(this)的重要性
var CaffeineBeverage = function(){ }; var Coffee = function(){ CaffeineBeverage.apply(this); }; Coffee.prototype = new CaffeineBeverage();
PS:我试过评论CaffeineBeverage.apply(这个),但没有效果.这是jsfiddle http://jsfiddle.net/pramodpv/8XqW9/的链接
解决方法
它只是将父构造函数应用于正在构造的对象.尝试将一些东西添加到CaffeineBeverage构造函数中,你会明白我的意思.
var CaffeineBeverage = function(){ this.tweakage = '123'; }; var Coffee = function(){ CaffeineBeverage.apply(this); };
不要这样做:Coffee.prototype = new CaffeineBeverage().改为:
Coffee.prototype = Object.create(CaffeineBeverage.prototype);
有关它的更多信息,请参阅this article,它还为没有Object.create的旧浏览器提供填充程序.
测试出来:
var drink = new Coffee(); console.log(drink.tweakage); // 123