[笔记] JavaScript 的基本观念 – 15 – prototype, reflection & extend

章节连结

Prototypal Inheritance 原型继承是 JavaScript 用来建立各种物件的概念。换言之,在 JavaScript 里,无论是函式、物件、阵列…等等都有所谓的物件原型(Prototype)。你可以使用 .__proto__ 来挖掘他们的默认原型值,你会发现都是 Object。因此,当你呼叫一个 Object 内的 key 在最底层的 Object 并没有时,它会默认往上一层的 .__proto__去寻找,直到找不到报错为止。javascript es6 logo


课程对应章节

Course 53 ~ Course 56 (全部一共有 85 Courses)

请注意:本系列文章为个人对应课程的消化吸收后,所整理出来的内容。换言之,并不一定会包含全部的课程内容,也有可能会添加其他资源来说明。课程连结网址:http://tinyurl.com/w7vrql6

内容

1.JavaScript 的所有物件(字串、函式…等),的原型都是物件。在这些原型下的 key,就是物件可以使用的方法,像是 string.length, object.bind …等等。
2.在实际应用时,不要尝试编修物件原型,这样会让整体的运行效能下降。
3.原型链的终点,为 null。
4.在影片中,作者引用了 underscore.js 这支外部来源的函式库,来示范如何新增其他物件的 property 到既有的物件中。不过在 ES6 中,导入了 class / extends/ constructor 一系列的语法糖来包装如Object.create之类的东西,让扩充上更方便。不过,JavaScript本身还是一个动态的语言,其绑定说其量都是彼此物件之间的连结。换言之,一个不经意的修改会导致一连串的结果被更动。

参考资料

1.你懂 JavaScript 吗?#21 ES6 Class
2.Day26 物件型别、Reflection and Extend


JavaScript 全攻略系列文章

  • [笔记] JavaScript 的基本观念 – 20 – something new 新玩意
  • [笔记] JavaScript 的基本观念 – 19 – 检视 / 建立框架 view & build a framework
  • [笔记] JavaScript 的基本观念 – 18 – 其他 miscellaneous
  • [笔记] JavaScript 的基本观念 – 16 – new 和 constructor function 函数建构子
  • [笔记] JavaScript 的基本观念 – 14 – call()、apply() 与 bind()
  • [笔记] JavaScript 的基本观念 – 13 – Closure 闭包
  • [笔记] JavaScript 的基本观念 – 12 – IIFE
  • [笔记] JavaScript 的基本观念 – 11 – Array, Syntax, Semicolon
  • [笔记] JavaScript 的基本观念 – 10 – this
  • [笔记] JavaScript 的基本观念 – 9 – 函数与物件 Function and Object
  • [笔记] JavaScript 的基本观念 – 8 – Boolean & if/else
  • [笔记] JavaScript 的基本观念 – 17 – 内建函数建构子
  • [笔记] JavaScript 的基本观念 – 7 – 运算子
  • [笔记] JavaScript 的基本观念 – 6 – 型别
  • [笔记] JavaScript 的基本观念 – 5 – Asynchronous
  • [笔记] JavaScript 的基本观念 – 4 – Variable Environment
  • [笔记] JavaScript 的基本观念 – 3 – Execution Stack
  • [笔记] JavaScript 的基本观念 – 2 – undefined
  • [笔记] JavaScript 全攻略:克服 JS 的奇怪部分
  • [笔记] JavaScript 的基本观念 – 1 – Hoisting
  • 按赞加入粉丝团

    延伸阅读