对象是引用类型,arr.__proto__ 指向Array.prototype ,__proto__和prototype两对象指向的是内存的同一存储空间。arr.__proto__.fn增加一个方法,Array.prototype和其他通过Array创建的对象都指向该空间,因此都有这个fn方法。但若arr.__proto__ = {fn: ..}用对象字面量赋值,会丢失对之前原型的引用,相当于arr.__proto__已重新指向内存分配的另一个空间,和Array.prototype指向的已经不是同一个空间了,因此Array.prototype以及通过Array创建的其他对象就访问不到fn方法
2017-07-28