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