原型和原型鏈

原型

定義:原型是function對象的一個(gè)屬性,它定義了構(gòu)造函數(shù)制造出的對象的公共祖先。通過該構(gòu)造函數(shù)產(chǎn)生的對象,可以繼承該原型的屬性和方法。原型也是對象。

特點(diǎn)
1.利用原型特點(diǎn)和概念,可以提取共有屬性
原型的增刪改查必須用Car.prototype.屬性來改

    Car.prototype.height=1400;//共有屬性
    Car.prototype.lang=4900;//共有屬性
    Car.prototype.carName='BMW';//共有屬性
    function Car(color,owner){
        this.owner=owner;
        this.color=color;
    }
    var car =new Car('red','prof.li');  
    var car1=new Car('blue','prof.ji');
Car.prototype{
        height=1400;//共有屬性
        lang=4900;//共有屬性
        carName='BMW';//共有屬性
}
    function Car(color,owner){
        this.owner=owner;
        this.color=color;
    }
    var car =new Car('red','prof.li');  
    var car1=new Car('blue','prof.ji');

2.對象查看對象的構(gòu)造函數(shù) --->constructor
這個(gè)對象的constructor是本身存在的,也可以手動修改 07

function Person(){
        
    }
    function Car(){

    }
    Car.prototype = {
       constructor:Person
     
    }
     var car = new Car();

3.對象如何查看原型 --->隱式原型proto

Person.prototype.name = 'sunny';
    function Person(){

    }
    var person = new Person();//person.name=cherry
    Person.prototype={//改了原型,換了個(gè)新對象
        name:'cherry'
    }

比如:引用值的相互賦值

var obj={name:'a'}
    var obj1=obj;//obj1.name=a
    obj={name:'b'};
Person.prototype.name = 'sunny';
    function Person(){

    }
    var person = new Person();//person.name=sunny
    Person.prototype.name='cherry';//在原有的基礎(chǔ)上改了屬性值

.查找屬性,如果本身沒有,則會去proto中查找,也就是構(gòu)造函數(shù)的顯式原型中查找,如果構(gòu)造函數(shù)中也沒有該屬性,因?yàn)闃?gòu)造函數(shù)也是對象,也有proto,那么會去它的顯式原型中查找,一直到null,如果沒有則返回undefined

原型鏈

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 原型和原型鏈?zhǔn)莏s中的難點(diǎn)也是重點(diǎn),明白了原型和原型鏈會讓我們在后面不管是學(xué)習(xí)還是工作都會更加高效,并且原型和原型...
    Ecl_02b8閱讀 554評論 0 2
  • 開篇: 在Brendan Eich大神為JavaScript設(shè)計(jì)面向?qū)ο笙到y(tǒng)的時(shí)候,借鑒了Self 和Smallt...
    指尖的宇宙閱讀 681評論 0 6
  • 一、創(chuàng)建對象有幾種方法 請大家盡可能多的找到創(chuàng)建對象的方法,如有補(bǔ)充歡迎在評論區(qū)留言討論。更多參考詳見:JavaS...
    番茄沙司a閱讀 823評論 1 3
  • 一、new 和 構(gòu)造函數(shù) 1.1 new 運(yùn)算符 new 運(yùn)算符用來創(chuàng)建一個(gè)新的對象,其后面需緊跟一個(gè)函數(shù),該函數(shù)...
    NathanYangcn閱讀 424評論 0 0
  • 總想著逃離 逃離熟悉的環(huán)境 逃離不想背負(fù)的責(zé)任 離開這熟悉的地方 去尋找另一片屬于自己的天地 于是我追尋 追尋新的...
    玉珠公子閱讀 413評論 0 0

友情鏈接更多精彩內(nèi)容