私は、プロトタイプ、コンストラクター、関数プロパティなどの高度な javascript トピックに飛び込んでいます (または試しています)。いくつかの事実から、javascript 関数もオブジェクトであるという結論に達しました。
次の理由から、関数のデータ型が であることを知っていfunction
ます。
> typeof function(){}
'function'
とにかく:
- 関数にプロパティを割り当てることができます(オブジェクトのように)
- 関数には
length
属性があります Function.prototype
のプロトタイプはObject.prototype
(プロトタイプ連鎖):> Object.getPrototypeOf(Function.prototype) === Object.prototype true
JavaScript関数がオブジェクトであるかどうかを誰かが明確にしてもらえますか? もしそうなら、なぜtypeof function == 'function'
とtypeof [] == 'object'
; そうでない場合 - 上記の点についてはどうですか?
編集:もう1つの質問-ファーストクラスオブジェクトとは何ですか?