FunctioninstanceofObject와 ObjectinstanceofFunction은 모두 참입니다
1. Object를 특별한 "클래스"로 생각할 수 있으며 여기서 "클래스"는 Function
이므로 다음과 같이 이해할 수 있습니다. Object = Function () {} or Object = new Function(); 즉, Object는 Function의 인스턴스이므로 Object 프로토타입 체인에 Function.prototype이 포함되어 있으며 다음을 얻습니다. Function.prototype.isPrototypeOf(Object)가 true
2. 동시에 js에서는 모든 객체(js 언어 외부 객체 제외)가 Object의 인스턴스로 간주될 수 있으며 Function도 예외는 아니며 Function.prototype도 예외는 아니므로 Function = new Object(); = new Object()이므로 Object.prototype.isPrototypeOf(Function) 및 Object.prototype.isPrototypeOf(Function.prototype)은 모두 true입니다.
3. 보충: 함수 자체도 "클래스"입니다. 그러나 모든 "클래스"는 Funciton의 인스턴스이므로 FunctioninstanceofFunction; 동시에 모든 객체는 Object 클래스의 인스턴스이고, Object 자체도 객체이며, Object의 Object 인스턴스도 true입니다. 또한 Funciton 유형은 Object 유형의 "파생 클래스"이고, Function 클래스는 Object 클래스를 상속받아 Object 클래스의 "서브 클래스"라고 생각할 수도 있습니다.