Function与Object

JavaScript中内置了两个顶级对象FunctionObjectObject是所有对象的基类,而所有的构造函数同时又是Function对象的实例。

Object

JavaScript中的所有对象都来自Object,所有对象从Object.prototype继承方法和属性,尽管它们可能被覆盖,例如其他构造函数在原型中实现自己的toString()方法。Object原型对象的更改将传播到所有对象,除非这些受到更改的属性和方法沿原型链被覆盖。

  1. // 定义三个对象
  2. var a = function(){} // 构造函数对象
  3. var b = new Array(1); // 数组对象
  4. var c = new Number(1); // 数字对象 // 包装对象
  5. // 检查原型链
  6. console.log(a.__proto__.__proto__ === Object.prototype); // true
  7. console.log(b.__proto__.__proto__ === Object.prototype); // true
  8. console.log(c.__proto__.__proto__ === Object.prototype); // true
  9. // 拆分指向
  10. console.log(a.__proto__ === Function.prototype); // true
  11. console.log(Function.prototype.__proto__ === Object.prototype); // true
  12. console.log(b.__proto__ === Array.prototype); // true
  13. console.log(Array.prototype.__proto__ === Object.prototype); // true
  14. console.log(c.__proto__ === Number.prototype); // true
  15. console.log(Number.prototype.__proto__ === Object.prototype); // true
  16. // 使用instanceof 实际也是检测原型链
  17. // instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上
  18. console.log(a instanceof Object); // true
  19. console.log(b instanceof Object); // true
  20. console.log(c instanceof Object); // true

Function

JavaScript中的所有的构造函数都继承自Function,包括Object构造函数,Function构造函数也继承于自己,当然Function也是继承于Object.prototype,可以说是先有的Object.prototypeObject.prototype构造出Function.prototype,然后Function.prototype构造出ObjectFunction

  1. // 构造函数对象
  2. var a = function(){} // 构造函数对象
  3. // 检查原型链
  4. console.log(a.__proto__ === Function.prototype); // true
  5. console.log(Object.__proto__ === Function.prototype); // true
  6. console.log(Function.__proto__ === Function.prototype); // true
  7. console.log(Function.prototype.__proto__ === Object.prototype); // true
  8. // 使用instanceof
  9. console.log(a instanceof Function); // true
  10. console.log(Object instanceof Function); // true
  11. console.log(Function instanceof Function); // true

总结

  • 一切对象都继承于Object,都是从Object.prototype继承方法和属性。
  • 一切构造函数包括ObjectFunction,都继承于Function,最终继承于Object

每日一题

  1. https://github.com/WindrunnerMax/EveryDay

参考

  1. https://www.cnblogs.com/tiancai/p/7463252.html
  2. https://www.cnblogs.com/yf2196717/p/10989466.html
  3. https://www.cnblogs.com/ioveNature/p/6880176.html
  4. https://www.cnblogs.com/tiffanybear/p/11320651.html
  5. https://blog.csdn.net/backee/article/details/83378772
  6. https://blog.csdn.net/weixin_34237596/article/details/88026745

Function与Object的更多相关文章

  1. javascript中的Function和Object

    写的很好,理解了很多,特此转发记录 转自:http://blog.csdn.net/tom_221x/archive/2010/02/22/5316675.aspx 在JavaScript中所有的对象 ...

  2. 【JavaScript】JavaScript的Function与Object浅析

    前言: JavaScript的面向对象是基于原形的,所有对象都有一条属于自己的原型链.Object与Function可能很多看Object instanceof Function , Function ...

  3. Object instanceof Function和Function instanceof Object

    首先需要确定的是,instanceof是根据原型链来判断是否为某引用类型的实例.所以需要明白Object和Function之间的关系,以下为引用某博客的图片,阐述了javascript对象体系的关系 ...

  4. Function,Object.creat();

    一.Object.creat()使用方法 Object.creat(对象): 功能:实现继承,创建一个原型继承自参数的对象. 什么是原型式继承:就是利用修改原型链的结构(增加一个节点中的成员,删除一个 ...

  5. JavaScript之Function 和 Object 的区别和联系

    1.先看一个控制台的输出: instanceof 运算符字面意思是 左边是右边的一个实例吗? 但是这两条输出让人很困惑.Function 是 Object 的实例.Object 也是 Function ...

  6. 一张图看懂Function和Object的关系及简述instanceof运算符

    我在写一篇图解prototype和__proto__的区别时,搜资料搜到了一个有意思的现象,下面这两个运算返回的结果是一样的: Function instanceof Object;//true Ob ...

  7. javascript中Function与Object

    1. 先来一段代码: console.log(Function); // function Function() { [native code] } console.log(Object); // f ...

  8. js中的Function和Object

    说到构造器(condtructor).原型链(prototype),说道Function与Object,总要祭出下面这张图 1.Function是最顶层的构造器,Object是最顶层的对象 2.先有的 ...

  9. 关于Function和Object之间先后问题的相关研究

    文章说明,博主是一个前端小白,本片文章是博主在学习的过程中碰到的疑惑,根据查找的资料,之后得出的个人结论,文中如果出现错误,欢迎指正. -------路漫漫其修远兮吾将上下而求索,与诸君共勉----- ...

  10. Function和Object 应该知道的

    javascript有5种基础的内建对象(Fundamental Objects),Object.Function.Error.Symbol.Boolean,而Object/Function尤为特殊, ...

随机推荐

  1. Django应用中的静态文件处理

    在日常开发中,我们都是把Django的Debug模式打开,方便调试,在这个模式下,由Django内置的Web服务器提供静态文件服务,不过需要进行一些配置,才能正确访问. 配置settings # St ...

  2. [转帖]常用bash脚本功能

    https://cloud.tencent.com/developer/article/1906536 1.判断curl返回状态码 #!/bin/bash response=$(curl -sL -o ...

  3. [转帖]Nginx应用调优案例

    https://bbs.huaweicloud.com/blogs/146367 [摘要] 1 问题背景nginx的应用程序移植到TaiShan服务器上,发现业务吞吐量没有达到硬件预期,需要做相应调优 ...

  4. [转帖]无需 zookeeper 安装 kafka 集群 (kakfa3.0 版本)

    https://xie.infoq.cn/article/7769ef4576a165f7bdf142aa3 一.kafka 集群实例角色规划 在 kafka3.0 中已经可以将 zookeeper ...

  5. [转帖]Native Memory Tracking 详解(4):使用 NMT 协助排查内存问题案例

    https://www.modb.pro/db/557714 从前面几篇文章,我们了解了 NMT 的基础知识以及 NMT 追踪区域分析的相关内容,本篇文章将为大家介绍一下使用 NMT 协助排查内存问题 ...

  6. [转帖]SpringBoot配置SSL 坑点总结【密码验证失败、连接不安全】

    文章目录 前言 1.证书绑定问题 2.证书和密码不匹配 3.yaml配置文件问题 3.1 解密类型和证书类型是相关的 3.2 配置文件参数混淆 后记 前言 在SpringBoot服务中配置ssl,无非 ...

  7. [转帖]「更易用的OceanBase」|OceanBase 4.0 一体化安装包 - 把简单留给用户

    https://www.modb.pro/db/565842 1. OceanBase 3.x 版本安装浅谈 我是在 OceanBase 3.1.4 版本的时候开始尝试入手测试的.刚开始 OB 3.x ...

  8. [转帖]JVM监控及诊断工具-命令行

    https://www.cnblogs.com/xiaojiesir/p/15622372.html 性能指标 停顿时间(响应时间) 提交请求和返回响应之间使用的时间,一般比较关注平均响应时间 常用操 ...

  9. 金蝶Cosmic虚拟机简单使用与总结

    背景 知己知彼 简单学习下友商发出来的测试软件 看看有否对自己现在的工作有所指导 也看看对方的部署方式有啥优缺点 当然了仅是测试, 不是生产软件可能有失真. 注意 我没有测试序列号, 登录系统耗时很久 ...

  10. Oracle表数量对数据泵备份恢复速度的影响情况

    Oracle表数量对数据泵备份恢复速度的影响情况 背景 随着公司产品交付后的时间越来越久. 数据库的备份恢复速度会越来越慢. 最开始一直认为是因为数据量导致的. 但是最近发现, 如果只是将数据库表的量 ...