このコードは、Addy Osmani のオンライン ブック「Learning JavaScript Design Patterns」からのものです。
// Extend an object with an extension
function extend( extension, obj ){
for ( var key in extension ){
obj[key] = extension[key];
}
}
拡張機能を使用してオブジェクトを拡張できると主張しています。本のサンプルではうまく機能します。はcontrolCheckbox
定義Subject
と DOMの両方でうまく機能しますcheckbox
。
<input id="mainCheckbox" type="checkbox"/>
...
var controlCheckbox = document.getElementById( "mainCheckbox" ),
...
extend( new Subject(), controlCheckbox );
...
controlCheckbox["onclick"] = new Function( "controlCheckbox.Notify(controlCheckbox.checked)" );
しかし、なぜそれが拡張されているのかがわかりません。の関数定義は、を DOM からに拡張するのではなく、 を上書きextend
しているように見えます。誰かが私を理解するのを手伝ってもらえますか?controlCheckbox
checkbox
Subject