js 繼承介紹

   js中繼承的方式並非明確的,這裏介紹經常使用的幾種app

1、對象冒充(構造函數綁定)函數

原理:使用對象冒充繼承基類,實質上是使用call或apply方法改變this 指針的指向this

 function Monkey()
        {
            this.type = "猴子"; } function MagicMonkey() { Monkey.call(this); this.skill = "法術"; } 

這種方式能夠實現多重繼承的,固然用apply也是同樣的spa

2、原型鏈prototype

原理:使用prototype屬性,prototype對象是個模版,要實例化的對象都以這個模版爲基礎,總而言之,prototype對象的任何屬性和方法都被傳遞給那個類的全部實例,原型鏈利用這種功能來實現繼承機制。指針

function Monkey() { }
        Money.prototype.type = "猴子";
        Money.prototype.run = function () { alert("我是一個猴子")}

        function MagicMonkey() { }
        MagicMonkey.prototype = new Monkey();
        var wukong = new MagicMonkey();
        alert(wukong.type);//打印出「猴子」
        wukong.run();//打印出"我是一個猴子"

注意:給子類加屬性或方法時必須在 MagicMonkey.prototype = new Monkey(); 以後,要不會被覆蓋,只能繼承一個父類code

3、混合模式對象

function Monkey(type) {
            Money.type = type;
        }
        Money.prototype.run = function () { alert("我是一個猴子")}

        function MagicMonkey(type) {
            Money.call(this,type);//只能繼承構造函數中的信息,不能繼承原型中的信息
        }
        MagicMonkey.prototype = new Monkey();

        var wukong = new MagicMonkey();
        alert(wukong.type);//打印出「猴子」
        wukong.run();//打印出"我是一個猴子"
相關文章
相關標籤/搜索