javascript中的继承是通过原型链来体现的
function Foo(){}; var f1 = new Foo(); f1.a = 10; Foo.prototype.a = 100; Foo.prototype.b = 200; console.log(f1.a); //10 console.log(f1.b);//200
为什么是这个结果呢?
访问一个对象的属性时,现在基本属性中找,如果没有,再沿着__proto__这条链向上找(对象的__proto__指向创建这个对象的函数的prototype,这个prototype的__proto__指向创建这个prototype对象的函数的prototype以此类推),这就是原型链
那么如何区分一个属性是基本的还是从原型当中找到的呢?可以用hasOwnProperty这个函数,那哪来的这个函数呢,它来自Object.prototype
由于所有的对象的原型链都会找到Object.prototype,因此所有对象都会有Object的方法,这就是js的继承。