ES6新出的关键class
ES6深入浅出-7 新版的类(上集)-1.介绍原型_干货
BE受雇与网景开发了JS
ES6深入浅出-7 新版的类(上集)-1.介绍原型_数组_02


当我们在写一个对象的时候,我们实际上内存的形式表示。
ES6深入浅出-7 新版的类(上集)-1.介绍原型_干货_03
obj等于一个空对象,可以直接toString。它为什么可以有toString
ES6深入浅出-7 新版的类(上集)-1.介绍原型_干货_04
window是一个全局的对象。
ES6深入浅出-7 新版的类(上集)-1.介绍原型_数组_05
window下有个object的属性。
ES6深入浅出-7 新版的类(上集)-1.介绍原型_代码复用_06
ES6深入浅出-7 新版的类(上集)-1.介绍原型_ES6_07
通过window.Object.prototype找到了toString
ES6深入浅出-7 新版的类(上集)-1.介绍原型_代码复用_08
为了方便理解,当说原型的时候 先理解为共用属性。
ES6深入浅出-7 新版的类(上集)-1.介绍原型_代码复用_09
toString是很多对象的共用属性。

当谢var obj为一个空对象的时候,为什么可以获取到toString的方法呢???
ES6深入浅出-7 新版的类(上集)-1.介绍原型_ES6_10
当你写这个空对象的时候,因为js做了一个特殊的逻辑

每一个对象都会有一个xxx属性指向它的原型,
ES6深入浅出-7 新版的类(上集)-1.介绍原型_代码复用_11
当访问obj.toString的时候。这个xxx就起作用了。实际上调用的是409的toString
ES6深入浅出-7 新版的类(上集)-1.介绍原型_数组_12

ES6深入浅出-7 新版的类(上集)-1.介绍原型_数组_13

这样可以做到代码复用。再声明一个obj2同样可以用到toString
ES6深入浅出-7 新版的类(上集)-1.介绍原型_数组_14
数组的toString是怎么拿到这个123的
ES6深入浅出-7 新版的类(上集)-1.介绍原型_干货_15
为什么不同的对象调用同一个toString,得到不同的结果
当写obj.toString等价于写obj.toString.call(obj) 。等价call这个参数,并把这个参数传进去。
ES6深入浅出-7 新版的类(上集)-1.介绍原型_干货_16


ES6深入浅出-7 新版的类(上集)-1.介绍原型_数组_17

push的原型是怎么获取到的

ES6深入浅出-7 新版的类(上集)-1.介绍原型_ES6_18

当调用a.push的时候,会去内存里面所有的对象里面去找这个方法,找到xxx里面,再找到原型里面找到了push方法
ES6深入浅出-7 新版的类(上集)-1.介绍原型_ES6_19
ES6深入浅出-7 新版的类(上集)-1.介绍原型_ES6_20

ES6深入浅出-7 新版的类(上集)-1.介绍原型_代码复用_21

结束