亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Javascript怎么實現繼承

發布時間:2022-03-02 11:08:48 來源:億速云 閱讀:139 作者:iii 欄目:web開發

這篇文章主要介紹“Javascript怎么實現繼承”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Javascript怎么實現繼承”文章能幫助大家解決問題。

1、構造函數模式
[url=]file:///C:/Users/i037145/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif[/url]
function Person(name,age,job){
    this.name = name;
    this.age = age;
    this.job = job;
    this.sayName = function(){
        alert(this.name);
    };
}

varperson1 = new Person("Nicholas",29,"Software Engineer");
varperson2 = new Person("Greg",27,"Doctor");

person1.sayName();//"Nicholas"
person2.sayName();//"Greg"

alert(person1.constructor == Person);//true
alert(person2.constructor == Person);//true

alert(person1 instanceof Object);//true
alert(person1 instanceof Person);//true
alert(person2 instanceof Object);//true
alert(person2 instanceof Person);//true
[url=]file:///C:/Users/i037145/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif[/url]
問題:
每個方法都要在每個實例上重新創建一遍。在前面的例子中,person1person2都有一個名為sayName()的方法,但那兩個方法不是同一個Function的實例。
alert(person1.sayName ==person2.sayName);//false
然而,創建兩個完成同樣任務的Function實例的確沒有必要;況且有this對象在,根本不用在執行代碼前就把函數綁定到特定對象上面。因此,可以通過把函數定義轉移到構造函數外部來解決這個問題:
[url=]file:///C:/Users/i037145/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif[/url]
function Person(name,age,job){
    this.name = name;
    this.age = age;
    this.job = job;
    this.sayName = sayName;
}

functionsayName(){
    alert(this.name);
}

varperson1 = new Person("Nicholas",29,"Software Engineer");
varperson2 = new Person("Greg",27,"Doctor");

alert(person1.sayName == person2.sayName);//true
[url=]file:///C:/Users/i037145/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif[/url]
問題:在全局作用域中定義的函數實際上只能被某個對象調用,這讓全局作用域有點名不副實。更讓人無法接受的是:如果對象需要定義很多方法,那么就要定義很多個全局函數,于是我們這個自定義的引用類型就絲毫沒有封裝性可言了。
2
、原型模式
3
、組合使用構造函數模式和原型模式
4
、原型鏈
5
、組合繼承
6
、原型式繼承
7
、寄生式繼承
8
、寄生組合式繼承
9
、拷貝組合式繼承

關于“Javascript怎么實現繼承”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昭苏县| 香格里拉县| 泊头市| 红安县| 乌恰县| 合山市| 溧水县| 泸定县| 永嘉县| 韶山市| 吉木萨尔县| 平和县| 洛川县| 唐山市| 新昌县| 齐河县| 仁怀市| 黄龙县| 岳普湖县| 克东县| 分宜县| 乳山市| 丹寨县| 通渭县| 宁南县| 六枝特区| 黔江区| 临猗县| 稷山县| 芒康县| 遂溪县| 江山市| 江都市| 巴楚县| 洛宁县| 长垣县| 台南县| 东山县| 柞水县| 巴林左旗| 丹棱县|