2

これらのコードは、「 Learning Javascript Design Patterns 」の本のabstract decoratorの例から抜粋したものです。this.superclass.constructor()とで混乱しましたextend()

hereのインスタンスである をthis参照していることは理解できます。しかし、何を指しますか?だけではないのはなぜですか?myMacbookProCaseDecoratorthis.superclassthis.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 は 2 つのオブジェクトを取り、それらを結合します。2 つのプロパティが同じで、オブジェクトの 1 つに 3 番目のプロパティがある場合、最終的なオブジェクトには 3 つのプロパティがあります。例:

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 に答える