Javascript 基于原型链实现的继承,简单来说就是通过对象的
__proto__实现的向上查找。
比如你从未定义过
toSing()方法,但是你却可以在任何地方使用它,原因就是当你使用
xx.toString()时,他会先在自身查找看看没有这个方法,如果没有就根据
__proto__寻找他的原型对象,看看他的原型对象上有没有....知道找到为止。
如何证明呢,做个试验:
var arr = [1,2,3 ];console.log(arr.toString());//1,2,3
可以肯定的是,新创建的
arr上没有定义
toString()方法,我们知道数组的构造函数是
Array(),可以重写一下
toSing()方法:
Array.prototype.toString = function(){ return 'Hello world' }var arr = [1,2,3 ];console.log(arr.toString());//'Hello world'


