深圳的设计网站软件制作思维导图的优势

张小明 2026/1/13 14:49:23
深圳的设计网站,软件制作思维导图的优势,建企业网站程序系统,网站推广的方法在学习 JavaScript 的过程中#xff0c;你是否曾被以下现象困惑过#xff1f;typeof Object; // function typeof {}; // object明明 Object 是“对象”的代表#xff0c;为什么它自己却是个函数#xff1f; 而 {} 才是我们日常使用的“对…在学习 JavaScript 的过程中你是否曾被以下现象困惑过typeof Object; // function typeof {}; // object明明Object是“对象”的代表为什么它自己却是个函数而{}才是我们日常使用的“对象”却被识别为object更令人费解的是Object和Function之间还存在一种看似“循环引用”的原型关系Object.__proto__ Function.prototype; // true Function.__proto__ Function.prototype; // true本文将带你彻底理清这两个问题背后的机制揭开 JavaScript 原型系统的神秘面纱。一、先回答为什么typeof Object≠typeof {}✅ 核心原因它们根本不是同一类东西表达式实际类型说明Object内置构造函数函数可调用Object()或new Object(){}普通对象字面量不可调用是Object的实例根据 ECMAScript 规范typeof对可调用对象即具有[[Call]]内部方法的对象返回function否则返回object。所以Object是一个函数→typeof Object function{}是一个普通对象→typeof {} object 类比理解Object是“造车的工厂”函数{}是“工厂生产出来的一辆车”对象二、深入Object和Function的原型关系要理解上述现象必须搞懂 JavaScript 中最核心的两个内置对象Object和Function。1. 基本事实所有函数包括Object、Array、Date都是Function的实例。所有普通对象包括{}、[]、Function.prototype最终都继承自Object.prototype。因此Object instanceof Function; // true Function instanceof Function; // true ({}).__proto__ Object.prototype; // true2. 它们的__proto__指向哪里表达式值说明Object.__proto__Function.prototypeObject是函数由Function构造Function.__proto__Function.prototypeFunction自身也是函数Function.prototype.__proto__Object.prototypeFunction.prototype是普通对象Object.prototype.__proto__null原型链终点3. 原型关系图文字版Function ──.__proto__──→ Function.prototype ──.__proto__──→ Object.prototype ──.__proto__──→ null ↑ │ (instanceof) Object ──.__proto__───────────────────────────────────────┘ 这看起来像“鸡生蛋、蛋生鸡”但实际上是 JS 引擎在初始化时预定义好的闭环结构。三、验证代码建议在控制台运行// 1. typeof 差异 console.log(typeof Object); // function console.log(typeof {}); // object // 2. instanceof 验证 console.log(Object instanceof Function); // true console.log(Function instanceof Function); // true // 3. __proto__ 关系 console.log(Object.__proto__ Function.prototype); // true console.log(Function.__proto__ Function.prototype); // true // 4. Function.prototype 是普通对象 console.log(typeof Function.prototype); // object console.log(Function.prototype.__proto__ Object.prototype); // true // 5. Object.prototype 是原型链顶端 console.log(Object.prototype.__proto__ null); // true四、常见误区澄清误区1Object是最顶层对象所以Object.__proto__应该是null✅ 正解Object是函数不是普通对象。所有函数的__proto__都指向Function.prototype。误区2Function.prototype是一个函数✅ 正解typeof Function.prototype返回object它是一个内置的普通对象仅用于被函数实例继承。误区3{}和Object是等价的所以 typeof 应该一样✅ 正解{}是Object的实例就像new Array()和Array的关系一样——构造函数 vs 实例。五、延伸如何正确判断类型由于typeof对对象一律返回object连null也是我们常使用Object.prototype.toString.call(value).slice(8, -1)例如Object.prototype.toString.call([]) // [object Array] Object.prototype.toString.call(new Date()) // [object Date] Object.prototype.toString.call(/regex/) // [object RegExp] Object.prototype.toString.call(null) // [object Null] Object.prototype.toString.call(undefined) // [object Undefined] Object.prototype.toString.call(123) // [object Number] Object.prototype.toString.call(str) // [object String] Object.prototype.toString.call(true) // [object Boolean] Object.prototype.toString.call(Symbol()) // [object Symbol] Object.prototype.toString.call(() {}) // [object Function] Object.prototype.toString.call({}) // [object Object]这正是利用了Object.prototype.toString能返回内部[[Class]]标签的特性。六、总结问题答案为什么typeof Object是function因为Object是一个可调用的构造函数为什么typeof {}是object因为{}是一个普通对象实例Object.__proto__指向哪Function.prototypeFunction.__proto__指向哪Function.prototype原型链终点是Object.prototype.__proto__ null记住函数也是对象但可调用 →typeof返回functionObject是“模具”{}是“产品”整个原型系统由Object和Function共同构建参考资料ECMAScript® 2024 Language SpecificationMDN:typeof
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

软文吧wordpress企业网站seo

一、项目背景详细介绍在C语言标准库中,memcpy 是一个极其基础但又极其重要的内存操作函数,用于将一段内存的数据复制到另一段内存中。它不关心数据类型,也不关心数据内容的含义,只负责按字节进行拷贝。memcpy 被广泛应用于以下场景…

张小明 2026/1/10 9:34:52 网站建设

制作网站软件下载上海千家美装饰公司地址

大家好,我是jobleap.cn的小九。 你希望系统学习 Python 的 pybloom-live 库,掌握其所有常用 API 的用法,并通过实战案例串联这些知识点。下面这份教程会从基础安装到核心 API 实战,全方位讲解 pybloom-live 的使用,适合…

张小明 2026/1/11 9:47:49 网站建设

北京网站备案流程网站没有做301的后果是什么

CRMEB商城系统极速部署指南:5分钟搞定Java电商平台的终极方案 【免费下载链接】crmeb_java Java商城 免费 开源 CRMEB商城JAVA版,SpringBoot Maven Swagger Mybatis Plus Redis Uniapp VueelementUI 包含移动端、小程序、PC后台、Api接口&#xff1…

张小明 2026/1/10 9:34:55 网站建设

萍乡专业的企业网站建设公司wordpress 文章评分

Kotaemon与Kubernetes集成:实现弹性伸缩部署 在企业智能客服、虚拟助手和自动化问答系统日益普及的今天,如何让AI对话服务既“聪明”又“稳定”,成了架构设计中的核心挑战。许多团队发现,即便模型效果出色,一旦上线面对…

张小明 2026/1/12 10:33:52 网站建设

网站推广工作总结上海网络推广工资

Windows多显示器DPI设置终极指南:告别缩放烦恼 【免费下载链接】SetDPI 项目地址: https://gitcode.com/gh_mirrors/se/SetDPI 在现代办公环境中,多显示器配置已成为提升工作效率的标准方案。然而,Windows系统在多显示器DPI缩放管理方…

张小明 2026/1/10 9:35:20 网站建设

浙江省建设工程监理管理协会网站wordpress 页面导出

Kubernetes共享存储革命:OpenEBS实战全解析 【免费下载链接】openebs OpenEBS是一个开源的存储解决方案,用于在Kubernetes集群中提供高可用、弹性和可扩展的存储服务。 - 功能:存储服务;高可用;弹性;可扩展…

张小明 2026/1/10 9:34:57 网站建设