あなたはJSシリーズを知らない(36) - [[取得]]と[[入れ]]

[[取得する]]
オブジェクトアクセスは、実現に微妙ですが、非常に重要な詳細情報があります
VAR myObjectという= { 
  : 2 
} 
myObject.a。// 2

myObject.aが実現で、プロパティへのアクセスで、myObjectというのmyObject.aが実際に達成[[取得]]の操作(関数呼び出しのようなビット:[[取得]]())。オブジェクトが同じプロパティ名を持っているかどうかを初めて目には、見つかった場合には、このプロパティの値を返します。何も見つからない場合は、定義により他の非常に重要な現象が存在することができるプロトタイプチェーンを横断するあるアルゴリズムを行う[[プレゼント]。いずれにしても見つからない場合は、未定義値を返します。

VAR myObjectという= { 
  : 2 
} 
myObject.b。// 未定義

 

 

[[プット]]
あなたは、その割り当て、それらのオブジェクトのトリガーと思うかもしれないセットに[[]に入れ]またはプロパティを作成し、実際には全くそうではありません。トリガされ、実際の動作はを含む多くの要因に依存[[]置く] この属性のオブジェクトの存在。 プロパティがすでに存在する場合
1 プロパティがアクセス記述子です、とセッターがある場合はセッターと呼ばれているかどうか、
属性データ記述子書き込み可能であるかどうか、2 例外strictモードスローされます、それが失敗した呼び出します
されていない場合、値が設定され、3プロパティの値について

この属性がオブジェクトに存在しない場合は、[[置く]]操作がより複雑になっています

 

おすすめ

転載: www.cnblogs.com/wzndkj/p/12563707.html