基本看過高程等書的人都可以對(duì)原型繼承,原型鏈查找侃侃而談,代碼中也可以使用原型完成一些事情,但是,我們對(duì)于原型真的徹底搞明白了么?
原型由構(gòu)造器確定
我們的原型是一個(gè)對(duì)象,構(gòu)造器函數(shù)有一個(gè)屬性指向這個(gè)對(duì)象,prototype;而我們每次new出來的實(shí)例也有一個(gè)屬性指向這個(gè)對(duì)象,__proto__。為什么說原型是由構(gòu)造器確定的,因?yàn)樵趎ew之后,這個(gè)實(shí)例的原型就已經(jīng)確定了,實(shí)例的__proto__和構(gòu)造器的prototype都會(huì)指向那個(gè)原型對(duì)象。
var Person=function(){};var p=new Person(); console.log(p.__proto__===Person.prototype); // truePerson.prototype={ say:function(){ console.log("hello"); } }var t=new Person(); console.log(t.__proto__===Person.prototype); // truet.say(); // helloconsole.log(p.__proto__===Person.prototype); // falsep.say(); // 報(bào)錯(cuò)