《JS总结》

拨乱反正

  • 最重要的知识
    第一个重要公式:JS公式
    对象.proto===其构造函数.prototype
    JS唯一的公式 如果不会就套公式

  • 第二个最重要知识:根公理
    Object.prototype是所有对象的(直接或间接)原型
    加了一个直接或间接,所谓公理就是规定好的

  • 第三个重要知识:函数公理
    所有函数都是由Function构造的
    任何函数.proto===Function.prototype
    任意函数包括Object/Array/Function

乱一
XXX的原型
{name:’frank’}的原型:Object.prototype
[1,2,3]的原型 Array.prototype
Object的原型 Function.prototype

解读:
Object的原型是Object.proto

的原型 这三个字等价于.proto
中文的原型无法区分 下划线proto和prototype
所以我们只能约定 原型默认表示为下划线proto
只不过下划线proto正好等价于某个函数的prototype

乱二
错误观点:[1,2,3]的原型是Array.prototype
Object.prototype是所有对象的原型
那为什么Object.prototype不是[1,2,3]的原型
对以上三句话做一个解释
原型分两种:直接原型和间接原型
对于普通对象来说,Object.prototype是直接原型
对于数组函数来说:Object.prototype是间接原型

乱三
错误观点:Object.prototype不是根对象
错误的分析:Object.prototype是所有对象的原型,Object是Function构造的
所以Function构造了Object.prototype,推论:Function才是万物之源
错在哪里:
Object.prototype和Object.prototype对象的区别 左边的是地址
上述所说Function构造了Object.prototype 实际上知识构造出了一个地址
对象里面从来都不会包含另一个对象

总结:

  • 构造函数:
    是用来构造对象的
    会预先存好对象的地址,原型的原型是根
    new的时候将对象的下划线p指向原型
  • 对象:
    所有对象都直接或间接指向根对象
    如果对象需要分类,就在原型链上加一环
    用构造对象可以加这一环
  • 思考:
    如果加了一环之后 想再加一环怎么办
    以后会在继承里讲

本文为张歆辉的原创文章,著作权归本人和饥人谷所有,转载务必注明来源

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 重要知识 对象.proto === 其构造函数.prototype Object.prototype是所有对象的(...
    Marshall3572阅读 170评论 0 0
  • 在 JavaScript 中,函数也是属于对象,可以像其他对象一样访问属性,其中便有一个属性叫原型 prototy...
    强哥科技兴阅读 217评论 0 1
  • 每日一题 以下哪个会打印出"3"?3.toString() //报错 Uncaught SyntaxError...
    咸小七阅读 417评论 0 0
  • JavaScript 介绍 JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支...
    Leon_520阅读 261评论 0 1
  • 1. ES6 1.1 变量的声明 变量的声明有三种形式,分别是 var、let和const。当使用 var定义的变...
    贺斯洁Margin阅读 177评论 0 0