Function与Object

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

Object

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

// 定义三个对象
var a = function(){} // 构造函数对象
var b = new Array(1); // 数组对象
var c = new Number(1); // 数字对象 // 包装对象 // 检查原型链
console.log(a.__proto__.__proto__ === Object.prototype); // true
console.log(b.__proto__.__proto__ === Object.prototype); // true
console.log(c.__proto__.__proto__ === Object.prototype); // true // 拆分指向
console.log(a.__proto__ === Function.prototype); // true
console.log(Function.prototype.__proto__ === Object.prototype); // true
console.log(b.__proto__ === Array.prototype); // true
console.log(Array.prototype.__proto__ === Object.prototype); // true
console.log(c.__proto__ === Number.prototype); // true
console.log(Number.prototype.__proto__ === Object.prototype); // true // 使用instanceof 实际也是检测原型链
// instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上
console.log(a instanceof Object); // true
console.log(b instanceof Object); // true
console.log(c instanceof Object); // true

Function

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

// 构造函数对象
var a = function(){} // 构造函数对象 // 检查原型链
console.log(a.__proto__ === Function.prototype); // true
console.log(Object.__proto__ === Function.prototype); // true
console.log(Function.__proto__ === Function.prototype); // true
console.log(Function.prototype.__proto__ === Object.prototype); // true // 使用instanceof
console.log(a instanceof Function); // true
console.log(Object instanceof Function); // true
console.log(Function instanceof Function); // true

总结

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

每日一题

https://github.com/WindrunnerMax/EveryDay

参考

https://www.cnblogs.com/tiancai/p/7463252.html
https://www.cnblogs.com/yf2196717/p/10989466.html
https://www.cnblogs.com/ioveNature/p/6880176.html
https://www.cnblogs.com/tiffanybear/p/11320651.html
https://blog.csdn.net/backee/article/details/83378772
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. 使用pip安装pycharm插件时,要使用管理员权限打开cmd安装

    1.问题 安装到一半报错 报错1 报错2 2.解决 解决1 原文:https://blog.csdn.net/weixin_44899752/article/details/128372969 下面是 ...

  2. [IDEA] - tomcat VM配置

    -Dfile.encoding=UTF-8

  3. Qt5.9 UI设计(一)——在win10系统上安装Qt5.9

    安装环境 win10 系统 Qt5.9.0 版本 官方下载地址 可以从官方网站获取:https://www.qt.io/zh-cn/ 现在的安装包跟以前的有些区别,加上网络比较慢,我这里演示的是Qt5 ...

  4. GB18030-2022 标准学习

    GB18030-2022 标准学习 下载 https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=A1931A578FE14957104988029B08 ...

  5. [转帖]英伟达H100市面价格飙升!Elon Musk:每个人都在买GPU

    https://cj.sina.com.cn/articles/view/5115326071/130e5ae7702001w8oz?sudaref=www.baidu.com&display ...

  6. 【转帖】io_uring vs epoll ,谁在网络编程领域更胜一筹?

    io_uring vs epoll ,谁在网络编程领域更胜一筹? 2021-12-16 1473举报 简介: 从定量分析的角度,通过量化 io_uring 和 epoll 两种编程框架下的相关操作的耗 ...

  7. [转帖]精通awk系列(19):awk流程控制之break、continue、next、nextfile、exit语句

    https://www.cnblogs.com/f-ck-need-u/   回到: Linux系列文章 Shell系列文章 Awk系列文章 break和continue break可退出for.wh ...

  8. top的简单学习

    获取当前进程的全部线程 jps 获取jvm的进程信息. top -Hp $pid -bn 1 > 1.txt 可以获取当前特定进程的所有子进程. 注意linux与Windows的不太一样. li ...

  9. 查找linux下面某目录下重名出现的文件以及次数

    find . -name '*.data' -exec basename {} \;| sort | uniq -w32 --all-repeated=separate | uniq -c | sor ...

  10. uni-app 长按事件 事件目标元素 手机运行uni-app

    longpress 长按就会触发哈 <view @click="clickTest">点击</view> <view @longpress=" ...