関数
関数はオブジェクトであり、関数を表すオブジェクトは関数オブジェクトです。すべての関数オブジェクトは Function オブジェクトから構築されます。言い換えれば、Function はトップレベルのコンストラクターです。ユーザー定義オブジェクト、システム組み込みオブジェクト、さらにはそれ自体を含む、システム内のすべてのオブジェクトを構築します。
オブジェクト
Object は最上位のオブジェクトです。すべてのオブジェクトは Object のプロトタイプを継承します。したがって、Object は Function によって構築されることも知っておく必要があります。
関数とオブジェクトの関係図:
<スクリプトタイプ="text/javascript">
var Foo= function(){}
var f1 = new Foo();
console.log(f1.__proto__ === Foo.prototype);
console.log(Foo.prototype.constructor === Foo);
var o1 =新しいオブジェクト();
console.log(o1.__proto__ === Object.prototype);
console.log(Object.prototype.constructor === オブジェクト);
console.log(Foo.prototype.__proto__ === Object.prototype);
//関数とオブジェクト
console.log(Function.__proto__ === Function.prototype);
console.log(Object.__proto__ === Function.prototype);
console.log(Object.prototype.__proto__);
console.log(Object.__proto__ === Function.prototype);
皆さん、コードを読むときに下の図の関係図を参照してください。気に入っていただければ幸いです。