[JS]#2機能オブジェクト(1)
4299 ワード
エンジンの観点から機能オブジェクトを見る
きのうけいしき
Function.prototype.call()
new演算子(new Book()など)を使用します.プロトタイプに接続する方法で
関数オブジェクトの作成
var book = function(){...};
エンジンが関数キーに遭遇すると、構築された機能オブジェクトのプロトタイプに関連付けられた方法で関数オブジェクトが作成されます.作成したオブジェクトをbook変数に割り当てます.
book()として呼び出されます.(関数オブジェクトなので呼び出すことができます.)
オブジェクトの保存
関数を呼び出すには、作成した関数オブジェクトを保存する必要があります.
関数オブジェクトの格納形式はkey/value形式です.
思想の転換
プロシージャと構造の生成
関数オブジェクト作成プロセス
function sports(){...}シェイプでfunctionキーワードに遭遇しました.
オブジェクトを作成して保存します.
モーションオブジェクトシェイプ(Motion Object Shape)
arguments: null
caller: null
length: 0
name: "sports"
prototype:
-- constructor: sports
-- proto: Object.prototype
proto: Function.prototype
var sports=function(){}を展開すると、上記の設定がリストされます.
Prototypeと同じ外部
__proto__
は、構築された機能オブジェクトのPrototypeを含む.Prototypeの
__proto__
には、構築されたオブジェクトのPrototypeが含まれます.sports = {
prototype: {
constructor: sports
__proto__: {}
}
}
sports = {
arguments: {},
caller: {},
length: 0,
name: "sports",
prototype: {
constructor: sports
__proto__: Object.prototype
}
__proto__: Function.prototype
}
関数オブジェクト構造
関数実行環境の識別/環境の保存
関数実行環境の識別
これは、
関数実行環境の保存
内部構成:汎用/オプション
内部プロパティは、エンジンが内部処理に使用するプロパティであり、外部ではspecタグとして使用できません.
⇒ Ex: [[Scope]]
公共事業
すべてのオブジェクトで共通のアイテムに設定され、すべてのオブジェクトが「ビル-in」オブジェクトとして作成されたオブジェクトを指します.
せんたくプログラム
オブジェクトに応じて選択的に設定された項目.このオブジェクトにのみ適用されます.
©Ex:Arrayオブジェクトに設定されているがStringオブジェクトには設定されていない項目.
パブリック内部プログラム
すべてのオブジェクトに対して設定された内部投影(さらに説明する部分のみ)
オプションの内部プログラム
構築されたオブジェクトのタイプに応じて、オプションの内部投影を行います.
Reference
この問題について([JS]#2機能オブジェクト(1)), 我々は、より多くの情報をここで見つけました https://velog.io/@simoniful/JS-2-Function-오브젝트テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol