Javascript this.superclass.constructor()和extend()

Javascript this.superclass.constructor()和extend(),javascript,inheritance,extend,superclass,Javascript,Inheritance,Extend,Superclass,这些代码摘自“”一书中抽象装饰器的示例。我被this.superclass.constructor()和extend()弄糊涂了 我能理解这个指的是myMacbookPro,这里是CaseDecorator的一个实例。但是this.superclass指的是什么?为什么不干脆这个.constructor(macbook) CaseDecorator的超类是MacbookDecorator?遗产发生在哪里? 它们是本机Javascript的一部分还是第三方库的一部分 谢谢 var CaseDeco

这些代码摘自“”一书中抽象装饰器的示例。我被
this.superclass.constructor()
extend()
弄糊涂了

我能理解
这个
指的是
myMacbookPro
,这里是
CaseDecorator的一个实例。但是
this.superclass
指的是什么?为什么不干脆
这个.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);

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

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

var extendedObject = $.extend(object1, object2);
扩展对象将是:

objectExtended = { name: "Test", sex: "male", job: "Worker" }

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

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

var extendedObject = $.extend(object1, object2);
扩展对象将是:

objectExtended = { name: "Test", sex: "male", job: "Worker" }

this.superclass.constructor()
正在获取
this
的属性
superclass
,获取其构造函数并调用它。所有这些都没有内置到JavaScript中。有点讨厌的模式,这个。迷你科技,我大体上理解你说的。但是我对本例中的具体对象感到迷茫。
this.superclass.constructor()
正在获取
this
的属性
superclass
,获取其构造函数并调用它。所有这些都没有内置到JavaScript中。有点讨厌的模式,这个。迷你科技,我大体上理解你说的。但在这个例子中,我对具体的对象感到迷茫,这似乎就是jQuery。问题的
extend
似乎不是jQuery,而是jQuery。问题的
extend
似乎不是jQuery。