<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        JavaScript設計模式之原型模式分析【ES5與ES6】

        來源:懂視網 責編:小采 時間:2020-11-27 22:11:07
        文檔

        JavaScript設計模式之原型模式分析【ES5與ES6】

        JavaScript設計模式之原型模式分析【ES5與ES6】:本文實例講述了JavaScript設計模式之原型模式。分享給大家供大家參考,具體如下: 從設計模式的角度講,原型模式是用于創建對象的一種模式,若需要創建一個對象,一種方法是先指定其類型,然后通過類來創建這個對象,另一種方法是通過原型來創建,不必關心對
        推薦度:
        導讀JavaScript設計模式之原型模式分析【ES5與ES6】:本文實例講述了JavaScript設計模式之原型模式。分享給大家供大家參考,具體如下: 從設計模式的角度講,原型模式是用于創建對象的一種模式,若需要創建一個對象,一種方法是先指定其類型,然后通過類來創建這個對象,另一種方法是通過原型來創建,不必關心對

        本文實例講述了JavaScript設計模式之原型模式。分享給大家供大家參考,具體如下:

        從設計模式的角度講,原型模式是用于創建對象的一種模式,若需要創建一個對象,一種方法是先指定其類型,然后通過類來創建這個對象,另一種方法是通過原型來創建,不必關心對象的具體類型,而是找到一個對象,然后通過克隆來創建一個一模一樣的對象。

        ES5提供了Object.create(obj)方法來克隆對象,在不支持Object.create(obj)方法的瀏覽器中,可以使用以下代碼:

        Object.create = Object.create || function(obj) {
         function Func() {};
         Func.prototype = obj;
         return new Func();
        }
        
        

        一、JavaScript中的原型繼承:

        1. 大部分的數據都是對象;

        JavaScript有兩種類型機制:基本類型和對象類型。基本類型包括undefinednumberbooleanstringfunctionobject

        JavaScript設計者的本意在于,除了undefined,一切都應該是對象,為了實現這一目標,number、boolean、string這幾種基本數據類型通過對應的包裝類Number、Boolean、String來變成對象類型數據。

        JavaScript中的根對象是Object.prototype對象,Object.prototype對象是一個空的對象。JavaScript的每個對象,實際上都是從Object.prototype對象克隆而來的,Object.prototype對象就是它們的原型。

        ES5提供了getPrototypeOf來查看對象的原型,Object.getPrototypeOf(任何對象) == Object.prototype都會返回true。

        2. 要得到一個對象,不是通過實例化類,而是找到一個對象作為原型并克隆它;

        JavaScript沒有類的概念,new運算符后面的不是類,而是構造器。當使用new運算符來創建對象時,實際上也是先克隆Object.prototype對象,再進行一些額外操作的過程。

        3. 對象會記住它的原型;

        其實不能說對象有原型,而只能說對象的構造器有原型。JavaScript給對象提供了一個名為__proto__屬性,默認指向它的構造器的原型,__proto__屬性是對象與構造器的原型聯系起來的紐帶,如:person.__proto__ == Person.prototype

        4. 若對象無法響應某個請求,它會把該請求委托給它自己的原型。

        這是原型繼承的精髓,當一個對象無法響應某個請求時,會順著原型鏈把請求傳遞下去,直到遇到一個可以處理該請求的對象為止。但是,原型鏈并不是無限長的,只會查找到Object.prototype對象為止,由于Object.prototype的原型是null,因此請求無法找到可以處理的對象,返回undefined

        二、原型繼承的未來

        使用Object.create來實現原型繼承似乎更能體現原型模式的精髓,但是,通過Object.create創建對象的效率并不高,通常要比通過構造函數創建對象慢。

        ES6帶來了新的Class語法,這讓JavaScript看起來像是一門基于類的語言,但背后仍然是通過原型機制來創建對象。

        class Person {
         constuctor(name) {
         this.name = name;
         }
         getName() {
         return this.name;
         }
        }
        class Student extends Person {
         constuctor(name) {
         super(name);
         }
         sayHello() {
         alert(“Hello”);
         }
        }
        var student = new Student(“Alice”);
        student.sayHello();
        
        

        更多關于JavaScript相關內容可查看本站專題:《javascript面向對象入門教程》、《JavaScript切換特效與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》

        希望本文所述對大家JavaScript程序設計有所幫助。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JavaScript設計模式之原型模式分析【ES5與ES6】

        JavaScript設計模式之原型模式分析【ES5與ES6】:本文實例講述了JavaScript設計模式之原型模式。分享給大家供大家參考,具體如下: 從設計模式的角度講,原型模式是用于創建對象的一種模式,若需要創建一個對象,一種方法是先指定其類型,然后通過類來創建這個對象,另一種方法是通過原型來創建,不必關心對
        推薦度:
        標簽: js javascript 原型
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 成人福利免费视频| 亚洲午夜精品一区二区麻豆| 四虎影视在线看免费观看| 国产精品无码免费播放| 亚洲高清日韩精品第一区| 嫩草影院在线播放www免费观看| 亚洲精品网站在线观看不卡无广告| 国产精品亚洲专一区二区三区| 国产美女无遮挡免费视频网站| 亚洲av无码一区二区三区在线播放| 成熟女人牲交片免费观看视频| 亚洲中文字幕无码久久| 成人毛片18女人毛片免费视频未| 亚洲精品国产精品国自产网站| 国产在线观看免费观看不卡| 亚洲一区精彩视频| 日韩精品视频免费网址| 美女裸免费观看网站| AV在线播放日韩亚洲欧| 99久久免费国产精品热| 精品亚洲国产成AV人片传媒| 国产电影午夜成年免费视频| 久久亚洲最大成人网4438| 成年在线观看免费人视频草莓| 国产精品亚洲专区无码牛牛 | 黄色毛片视频免费| 亚洲中文字幕丝袜制服一区| 国产啪精品视频网站免费尤物| 亚洲一区二区中文| 免费无码黄网站在线观看| 国产成人综合亚洲| 亚洲精品成人片在线观看精品字幕| 99在线观看视频免费| 亚洲中文无码亚洲人成影院| 亚洲婷婷国产精品电影人久久| 国产一精品一av一免费爽爽 | 国内精品久久久久影院亚洲| 国产人成免费视频| 少妇太爽了在线观看免费视频| 亚洲男人天堂2018av| 亚洲一区二区三区影院|