あなたがこれを言うとき:
VV = V.extend({q: 234});
VVその「サブクラス」として作成してVいる場合は、追加のqプロパティがあります。「クラス」によって定義されたプロパティは、からの自動オプション処理とは何の関係もありませんView#initialize。
「ビューの新しいインスタンスを作成する」と記載されている場合は、ドキュメントの方が優れている可能性があります。
次に、new VV({z: 123})それが単一のパラメーターで{z: 123}ビューのメソッドに渡されると(1.1.0より前のバックボーンはコンストラクターのオプションに自動的に設定されます)、が含まれるため、次のようになります。initializeoptionsthis.optionsqthis.qinitialize
initialize: function(options) {
console.log(options.z);
console.log(this.q);
}
また、これを行った場合:
var VVV = VV.extend({q: 'pancakes'});
getqのインスタンスが内部にあるデフォルトを置き換えます。VVthis.q'pancakes'initialize
デモ: http: //jsfiddle.net/ambiguous/eqBV2/
使用View#extendはサブクラス化のようなものです(より正確には、新しいプロトタイプインスタンスを作成します)が、new新しいオブジェクト(またはプロトタイプインスタンスのコピー)を作成します。もちろん、クラス/インスタンス言語はJavaScriptの現実に適合しないため、用語をあまり真剣に受け止めないように注意する必要があります。