溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

js原型繼承

發(fā)布時間:2020-07-21 12:14:11 來源:網(wǎng)絡(luò) 閱讀:330 作者:home_xu 欄目:web開發(fā)
function對象結(jié)構(gòu)(Persion)
    Persion{
        eat:f()
        __proto__:Object{
           constructor:
        }
 }
_proto__ 屬性,它是對象所獨(dú)有的
__proto__屬性都是由一個對象指向一個對象,即指向它們的原型對象
它的作用就是當(dāng)訪問一個對象的屬性時,如果該對象內(nèi)部不存在這個屬性,
那么就會去它的__proto__屬性所指向的那個對象里找,如果父對象也不存在這個屬性,
則繼續(xù)往父對象的__proto__屬性所指向的那個對象里找,如果還沒找到,
則繼續(xù)往上找…直到原型鏈頂端null,此時若還沒找到,則返回undefined
prototype屬性 它是函數(shù)所獨(dú)有的,它是從一個函數(shù)指向一個對象。它的含義是函數(shù)的原型對象,
也就是這個函數(shù)(其實(shí)所有函數(shù)都可以作為構(gòu)造函數(shù))所創(chuàng)建的實(shí)例的原型對象
prototype屬性 作用就是包含可以由特定類型的所有實(shí)例共享的屬性和方法,
也就是讓該函數(shù)所實(shí)例化的對象們都可以找到公用的屬性和方法。任何函數(shù)在創(chuàng)建的時候,
其實(shí)會默認(rèn)同時創(chuàng)建該函數(shù)的prototype對象

p.proto === Persion.prototype,它們兩個完全一樣

總結(jié):
1、我們需要牢記兩點(diǎn):①__proto__和constructor屬性是對象所獨(dú)有的;
  ② prototype屬性是函數(shù)所獨(dú)有的,因為函數(shù)也是一種對象,所以函數(shù)也擁有__proto__和constructor屬性。

 2、__proto__屬性的作用就是當(dāng)訪問一個對象的屬性時,如果該對象內(nèi)部不存在這個屬性,
    那么就會去它的__proto__屬性所指向的那個對象(父對象)里找,一直找,直到__proto__屬性的終點(diǎn)null,
    然后返回undefined,通過__proto__屬性將對象連接起來的這條鏈路即我們所謂的原型鏈。

 3、prototype屬性的作用就是讓該函數(shù)所實(shí)例化的對象們都可以找到公用的屬性和方法,
    即p.__proto__ === Persion.prototype。

 4、constructor屬性的含義就是指向該對象的構(gòu)造函數(shù),所有函數(shù)(此時看成對象了)最終的構(gòu)造函數(shù)都指向Function
 代碼:
 //function繼承
function inherits(Child, Parent) {
    var F = function() { };
    F.prototype = Parent.prototype;
    Child.prototype = new F();//修改子類prototype指向
    //任何一個prototype對象都有一個constructor屬性,指向它的構(gòu)造函數(shù)
    //由于修改了child prototype為F則對應(yīng)的constructor會指向F的prototype的constructor(也就指向了Parent的構(gòu)造函數(shù)了),
    //所以要對應(yīng)設(shè)置一個prototype的contructor
    Child.prototype.constructor = Child;
    Child.super = Parent.prototype;//設(shè)置super屬性,方便調(diào)用父類的prototype方法
}
向AI問一下細(xì)節(jié)
推薦閱讀:
  1. JS如何取整
  2. js工具

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI