老师你这一节有一个地方讲错了 var a = new Array() a.__proto__.click=function(){alert(1)}
那么 var c = new Array() c.click() 执行出来 也是alert(1) 不用你所谓的要通过c.__proto__constructor.prototype.click = function(){alert(1)} 因为无谓从隐式还是显示走不改变原型指向的话都会指向本身的原型
那么 var c = new Array() c.click() 执行出来 也是alert(1) 不用你所谓的要通过c.__proto__constructor.prototype.click = function(){alert(1)} 因为无谓从隐式还是显示走不改变原型指向的话都会指向本身的原型
2016-12-27
老师想说的是重写arr.__proto__的时候,只有arr才会有customFn属性,而其它new出来的array就不会有customFn属性,
var arr=[];
arr.__proto__={pp:1};
arr.pp; //1
var arr1=[];
arr1.pp;//undefined
var arr=[];
arr.__proto__={pp:1};
arr.pp; //1
var arr1=[];
arr1.pp;//undefined
2016-12-27
我也发现这个问题了,老师的确是讲错了。
在任何一个new的实例中的__proty__ 都是指向 构造函数的prototype。
所以arr.__proto__.customFn的customFn, 在其他arr1、arr2、arr3都是可以使用的。
在任何一个new的实例中的__proty__ 都是指向 构造函数的prototype。
所以arr.__proto__.customFn的customFn, 在其他arr1、arr2、arr3都是可以使用的。
2016-12-25