2

这些代码摘自《学习Javascript设计模式》一书中抽象装饰器的例子。我被this.superclass.constructor()and弄糊涂了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);
4

1 回答 1

-1

Extend 接受两个对象,并将它们组合起来。如果您有两个相同的属性,但其中一个对象具有第三个属性,则最终对象具有三个属性。例子:

var object1 = { name: "Test1", sex: "male" };
var object 2 = { job: "Worker" }

var extendedObject = $.extend(object1, object2);

扩展对象将是:

objectExtended = { name: "Test", sex: "male", job: "Worker" }
于 2013-10-17T01:11:30.097 回答