<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] # JS的繼承是基于原型的繼承 * 面向對象編程很重要的一個方面,就是對象的繼承。A 對象通過繼承 B 對象,就能直接擁有 B 對象的所有屬性和方法。這對于代碼的復用是非常有用的。 * 大部分面向對象的編程語言,都是通過“類”(class)來實現對象的繼承。JavaScript 語言的繼承則是通過“原型對象”(prototype)。 ## 1.構造函數的缺點 JavaScript 通過構造函數生成新對象,因此構造函數可以視為對象的模板。實例對象的屬性和方法,可以定義在構造函數內部。 ``` var Person = function(name,age){ this.name = name; this.age = age; } var chengchao = new Person("jack",18) console.log(chengchao.name); //"jack" console.log(chengchao.age); //18 ``` > 通過構造函數為實例對象定義屬性,雖然很方便,但是有一個缺點。同一個構造函數的多個實例之間,無法共享屬性,從而造成對系統資源的浪費。 ``` //eg: var Person = function(name,age){ this.name = name; this.age = age; this.see = function(){ console.log(this.name+"愛看片") } } var chengchao = new Person("jack",18) chengchao.see(); ``` ## 2.這個問題的解決方法,就是 JavaScript 的原型對象(prototype) ``` var Person = function(name,age){ this.name = name; this.age = age; } Person.prototype.see = function(){ console.log(this.name+"愛看片") } var chengchao = new Person("jack",18); var lisi = new Person("李四",19); chengchao.see(); lisi.see(); ``` > 在原型上生成see方法,所有的對象共享改方法 > ![](https://box.kancloud.cn/383766e319e753f716b37dc7edce31c9_800x656.png) Eg:像數組字符,的一些常用的方法就是放在原型上 ``` Array.prototype.getMax = function(arr){ return Math.max(...arr); } var arr = [1,2,3]; arr.getMax(arr); //在數組的原型上定義一個say方法,所有實例化的對象都擁有了say方法 ``` JavaScript 繼承機制的設計思想就是,原型對象的所有屬性和方法,都能被實例對象共享 總結一下,原型對象的作用,就是定義所有實例對象共享的屬性和方法 ``` var Person = function(name,age){ this.name = name; this.age = age; } Person.prototype.see = function(){ console.log(this.name+"愛看片") } Person.prototype.sex="男"; Person.prototype.like ="看美女"; var chengchao = new Person("jack",18); console.log(chengchao.like); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看