四川省住房和城乡建设厅网站发做个淘宝客网站怎么做

张小明 2026/1/1 10:09: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进行投诉反馈,一经查实,立即删除!

网站素材大全seo关键词推广优化

开源记账系统MoneyNote:3步搭建你的个人财务管家 【免费下载链接】moneynote-api 开源免费的个人记账解决方案 项目地址: https://gitcode.com/gh_mirrors/mo/moneynote-api 在财务管理日益重要的今天,如何找到一款既安全又实用的记账工具&#x…

张小明 2025/12/31 10:06:33 网站建设

网络整合营销六大模型系统优化有什么用

SQL的基础语句select语句使用形式:SELECT column1, column2, ... FROM table_name WHERE condition;select * from student where sex’男’;其中,SELECT关键字用于指定要查询的列,可以使用*代表所有列;FROM关键字用于指定要查询的…

张小明 2025/12/30 5:45:55 网站建设

做网站都有哪些费用大连免费营销型建站网络推广

Red Hat KVM 虚拟化实战指南 1. 准备工作与 KVM 包安装 在开始使用 KVM 进行虚拟化操作前,需要注意两点:一是必须拥有虚拟化授权许可证,否则无法从 Red Hat 获取更新;二是由于使用虚拟机模拟实验环境,若没有备用的独立机器,可能无法完全按照后续命令操作。 首先,安装 …

张小明 2025/12/30 6:02:38 网站建设

自己建网站数据怎么做网站开发 技术难点

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 🍊个人信条:格物致知,完整Matlab代码获取及仿…

张小明 2025/12/30 7:19:07 网站建设