继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【金秋打卡】第4天 从函数到函数式编程之路

风吹尘
关注TA
已关注
手记 61
粉丝 9
获赞 1

课程名称:破解JavaScript高级玩法
课程章节:第6章 从函数到函数式编程之路
主讲老师:Cloud

课程内容:

今天学习的内容包括:
6-6 深入浅出原型链——原型链基本知识大回顾。

课程收获:

原型是“借”来的
  • 原型不是JavaScript首创
  • 借鉴Self语言,基于原型( prototype)的实现继承机制
原型的解决了什么问题
  • 共享数据,减少空间占用,节省内存
  • 实现继承
原型三件套
  • prototype
  • constructor
  • proto
prototype
  • 无处不在
  • 本质是一个普通对象
constructor
  • 实例的构造函数
proto
  • proto : _proto_属性是一个访问器属性(一个getter函数和一个setter函数),暴露了通过它访问的对象的内部[Prototype]
  • 构造函数的原型prototype
  • 推荐使用:Object.getPrototypeof
谁都有谁
  • prototype属性本质是一个普通对象
  • 普通对象有_proto_属性
  • 普通函数或者class既有prototype属性,又有__proto__属性

小结

prototype
  • 函数或则class的共享属性
  • 作用:节约内存、实现继承
  • 本质是一个普通的对象
constructor
  • 实例对象的构造函数
  • 可以被更改
  • 普通对象,其在原型上
proto
  • 构造函数的原型
  • Object.prototype.proto == null
  • 基于此形成原型链
知识点总结
  • 函数最终的本质上是对象
  • 普通对象都有constructor,指向自己的构造函数,可以被改变,不一样安全
  • 函数和class的prototype.constructor指向函数自身
  • Function,Object,Regexp, Error等本质是函数,Function.constructor=== Function
  • 普通对象都有__proto__,其等于构造函数的原型,推荐使用Object.getPrototypeOf
  • 所有普通函数的构造函数都是Function,ES6有出现的函数种类AsyncFunction,GeneratorFunction
  • 原型链的尽头是null: Object.prototype.proto= null
  • Function._proto__指向Function.prototype
趣味知识
  • 普通对象的二次__proto__是null
  • 普通函数的三次__proto__是null
  • 如果是经历过n次显式继承,被实例化的普通对象,n+3层的__proto__是null
纯净对象
  • 什么是纯净对象,就是干干净净的对象。没有原型。
  • 怎么创建:Object.creat(null)
优点
  • 空间上,少了原型链的信息,必然节约空间。
  • 时间上,没有原型链,查找一步到位。

今天 学习了 深入浅出原型链,再次熟悉了原型链相关的知识,学习就是不断学习,重复学习。对自己说一句,加油😀~

坚持打卡,坚持学习!明天见💪~

​​
http://img.mukewang.com/635aa5b70001a40425331360.jpg

http://img4.mukewang.com/635aa8580001548025341356.jpg

http://img1.mukewang.com/635aa8c00001c72325261351.jpg

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP