【发布时间】:2013-10-25 08:11:00
【问题描述】:
这些代码摘自《Learning Javascript Design Patterns》一书中抽象装饰器的例子。我被this.superclass.constructor() 和extend() 弄糊涂了。
我可以理解this指的是myMacbookPro,这里是CaseDecorator的一个实例。但是this.superclass 指的是什么?为什么不只是this.constructor(macbook)?
CaseDecorator 的超类是MacbookDecorator?继承发生在哪里?
它们是原生 Javascript 还是第三方库的一部分?
谢谢
var CaseDecorator = function(macbook) {
// call the superclass's constructor next
this.superclass.constructor(macbook);
};
// Let's now extend the superclass
extend(CaseDecorator, MacbookDecorator);
....
// Decorate the macbook
myMacbookPro = new CaseDecorator(myMacbookPro);
【问题讨论】:
-
this.superclass.constructor()正在获取this的属性superclass,获取其构造函数并调用它。它都没有内置在 JavaScript 中。有点讨厌的模式,这个。 -
minitech,我理解你所说的一般。但是我迷失了这个例子中的具体对象。
标签: javascript inheritance extend superclass