2016-04-14 11 views
-1

私はKyle Simpson "this & Object Prototypes"を読んでいます。 "&シャドウイングプロパティの設定"通常のデータアクセサはfooは[[プロトタイプ上の任意の場所に高く検出されたというプロパティ(第3章を参照してください)場合myObject.foo =「バー」の割り当てとJavascriptの設定とシャドーイングプロパティ(プロトタイプチェーン)

  1. 特に最初のための3つのシナリオで迷子メートル]]連鎖であり、読み取り専用(書き込み可能:false)としてマークされていない場合、fooという新しいプロパティがmyObjectに直接追加され、影付きのプロパティが生成されます。
  2. fooが[[Prototype]]チェーンで上位にありますが、読み取り専用(書き込み可能:false)とマークされている場合、その既存のプロパティの設定と、 myObjectでは禁止されています。コードが厳密なモードで実行されている場合は、エラーがスローされます。それ以外の場合は、プロパティ値の設定は黙って無視されます。どちらの方法でも、シャドーイングは発生しません。
  3. fooが[Prototype]チェーンの上位にあり、それがセッター(第3章を参照)である場合、セッターが常に呼び出されます。 fooはmyObjectに(別名で隠されています)追加されませんし、fooセッターも再定義されません。

そして "データアクセサは" 何ここ

おかげ

+0

あなたの質問はありますか? – zeroflagL

+1

(第3章を参照してください) –

+0

おかげで 私が最初のケースを理解しないし、また、どのような「」通常のデータアクセサは」 – Kas

答えて

0

多かれ少なかれ意味:任意の 'fooが' myObjectというのプロトタイプで発見された場合

1)読み込み専用でもセッターでもない場合、myObjectの 'bar'に上書きされます。

2)myObjectのプロトタイプに 'foo'があり、読み取り専用の場合、 'foo'は同じままになり、上書きされることはありません。 strictモードで実行すると、エラーが発生します。

3)myObjectのプロトタイプに「foo」があり、それがセッターである場合、そのセッターメソッドは 'bar'に上書きされる代わりに呼び出されます。

+0

のセクションのおかげShilly を教えてくださいすることができ – Kas

関連する問題