ホームページ > 記事 > ウェブフロントエンド > JavaScriptにおけるオブジェクトと関数の関係のまとめ_javascriptスキル
FunctioninstanceofObject と ObjectinstanceofFunction はどちらも true
1。 Object を特別な「クラス」と考えることができ、ここでの「クラス」は Function
であるため、次のように理解できます。 Object = Function () {} または Object = new Function();つまり、Object は Function のインスタンスであるため、Object プロトタイプ チェーンには Function.prototype が含まれており、次の結果が得られます: Function.prototype.isPrototypeOf(Object) is true
2。同時に、js では、すべてのオブジェクト (js 言語の外部オブジェクトを除く) は Object のインスタンスと見なすことができ、Function も例外ではなく、Function.prototype も例外ではないため、 Function = new Object(); となります。 = new Object() なので、Object.prototype.isPrototypeOf(Function) と Object.prototype.isPrototypeOf(Function.prototype) は両方とも true
3.補足: Function 自体も「クラス」ですが、すべての「クラス」は Funciton のインスタンスであるため、 Function instanceof Function; は true です。同時に、すべてのオブジェクトは Object クラスのインスタンスであり、Object 自体もオブジェクトであり、Object のインスタンスも true です。また、Funciton 型は Object 型の「派生クラス」であり、Function クラスは Object クラスを継承し、Object クラスの「サブクラス」であると考えることもできます。