MDN の説明を読んだとき、疑問に思いました。 MDN はこの方法を次のように説明しています
リーリー拡張配列クラス MyArray の Array オブジェクトを返したい場合があります。たとえば、デフォルトのコンストラクターを返す map() などのメソッドを使用する場合、これらのメソッドが MyArray オブジェクトではなく親の Array オブジェクトを返すようにする必要があります。
私の理解によれば、このメソッドはオブジェクトの作成時にトリガーされ、取得されたオブジェクトも Array 型のインスタンスであるはずです。デバッグの結果、コードがポイント 2 で実行されると、ポイント 1 にジャンプして実行されず、ポイント 3 のマップ メソッドが実行されるとポイント 1 まで実行が継続されることがわかりました。この時点では、ainstanceofMyArray ===true、ainstanceofArray ===true
。 3点実行するとコードの出力結果が得られます。
このメソッドはいつトリガーされますか? Instanceof MyArray === true なのにマップされた instanceof MyArray === false になるのはなぜですか?
Ruan 先生の指示を読むことができます http://es6.ruanyifeng.com/#do... 組み込みのシンボル値