国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

ExtJS底層繼承機(jī)制實(shí)現(xiàn)

mayaohua / 3326人閱讀

摘要:是個(gè)基于對(duì)象的語(yǔ)言,沒(méi)有類(lèi)的概念。而且語(yǔ)言特點(diǎn)就是松散和自由,實(shí)現(xiàn)一個(gè)同樣的功能,可以有很多種方式面向?qū)ο缶幊探^大部分都是基于類(lèi)的所以我們可以借助原型鏈繼承的方式來(lái)在中實(shí)現(xiàn)高級(jí)程序語(yǔ)言中的繼承機(jī)制關(guān)鍵點(diǎn)就是你一定要了解中的。

JavaScript是個(gè)基于對(duì)象的語(yǔ)言,沒(méi)有類(lèi)的概念。而且JavaScript語(yǔ)言特點(diǎn)就是松散和自由,實(shí)現(xiàn)一個(gè)同樣的功能,可以有很多種方式.面向?qū)ο缶幊探^大部分都是基于類(lèi)的.所以我們可以借助原型鏈繼承的方式,來(lái)在JavaScript中實(shí)現(xiàn)高級(jí)程序語(yǔ)言中的繼承機(jī)制.關(guān)鍵點(diǎn)就是你一定要了解js中的prototype。模擬ExtJS底層方法,來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的繼承機(jī)制

function extend(sub,sup){
    //實(shí)現(xiàn)只繼承父類(lèi)的原型對(duì)象

    //1.用一個(gè)空函數(shù)進(jìn)行中轉(zhuǎn)
    var F = new Function();
    //2.實(shí)現(xiàn)空函數(shù)的原型對(duì)象和超類(lèi)的原型對(duì)象轉(zhuǎn)換
    F.prototype = sup.prototype;
    //3.原型繼承
    sup.prototype = new F();
    //4.還原子類(lèi)的構(gòu)造器
    sub.prototype.constructor = sub;
    //5.保存一下父類(lèi)的原型對(duì)象,一方面方便解耦,另一方面方便獲取父類(lèi)的原型對(duì)象,實(shí)現(xiàn)方法重載
    sub.superClass = sup.prototype; //自定義一個(gè)子類(lèi)的靜態(tài)屬性,接收父類(lèi)的原型對(duì)象
    //6.判斷父類(lèi)原型對(duì)象的構(gòu)造器
    if(sup.prototype.constructor == Object.prototype.constructor){
        sup.prototype.constructor = sup; //手動(dòng)還原父類(lèi)對(duì)象的構(gòu)造器
    }
}

function Person(name,age){
    this.name = name;
    this.age = age;
}
Person.prototype = {
    constructor: Person,    //還原構(gòu)造器,這里其實(shí)可以不用還原,因?yàn)樵趀xtend方法中已經(jīng)實(shí)現(xiàn)了
    sayHello: function(){
        alert("hello world!");
    }
}
function Boy(name,age,sex){
    //綁定父類(lèi)函數(shù)模版,實(shí)現(xiàn)構(gòu)造函數(shù)繼承,只復(fù)制了父類(lèi)的模版
    Boy.superClass.constructor.call(this,name,age);
    this.sex = sex;
}
extend(Boy,Person);
//給子類(lèi)添加一個(gè)原型對(duì)象方法
Boy.prototype.sayHello = function(){
    alert("hello,javascript");
}
Boy.superClass.sayHello.call(b);    //實(shí)現(xiàn)方法重載,調(diào)用父類(lèi)的方法
var b = new Boy("z3",20,"nan");
alert(b.name);
alert(b.sex);
b.sayHello();   //調(diào)用子類(lèi)重載的方法

轉(zhuǎn)摘自我的博客:ExtJS底層繼承機(jī)制實(shí)現(xiàn)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/85714.html

相關(guān)文章

  • 聽(tīng)飛狐聊JavaScript設(shè)計(jì)模式系列04

    摘要:介一回,偶們來(lái)聊一下用中的類(lèi),有些盆友可能用過(guò)或者的,知道語(yǔ)法糖,可是在中并沒(méi)有,中需要用到構(gòu)造函數(shù)來(lái)模擬類(lèi)。而且要注意一點(diǎn),構(gòu)造函數(shù)沒(méi)有語(yǔ)句,是自動(dòng)返回。 本回內(nèi)容介紹 上一回聊到JS的Function類(lèi)型,做了柯里化,數(shù)組去重,排序的題。 介一回,偶們來(lái)聊一下用JS中的類(lèi),有些盆友可能用過(guò)ES6或者TypeScript的,知道Class語(yǔ)法糖,可是在ES5中并沒(méi)有,ES5中需要用到...

    kgbook 評(píng)論0 收藏0
  • extjs 事件執(zhí)行

    摘要:?jiǎn)栴}是解決了,但引發(fā)我猜想,我最初是以為多線(xiàn)程的原因,不然不能解釋這個(gè)現(xiàn)象程序肯定沒(méi)有順序執(zhí)行。雖說(shuō)現(xiàn)在已經(jīng)有了多線(xiàn)程,但現(xiàn)在沒(méi)用到,就不在記錄之列了參考鏈接異步編程阮一峰 緣起 在項(xiàng)目中用到了extjs做后臺(tái)頁(yè)面展示,當(dāng)時(shí)寫(xiě)了一個(gè)product 模塊,在新增窗口里放了一個(gè)card布局器,里面有不同的表單,當(dāng)然新增窗口還有保存,重置,關(guān)閉這三個(gè)按鈕。 當(dāng)時(shí)在保存時(shí)寫(xiě)了下面代碼: ...

    mylxsw 評(píng)論0 收藏0
  • JavaScript_面向?qū)ο蟪绦蛟O(shè)計(jì)

    摘要:構(gòu)造函數(shù)用于檢測(cè)給定的屬性在當(dāng)前對(duì)象實(shí)例中而不是原型中是否存在。返回對(duì)象的字符串表示。實(shí)現(xiàn)空函數(shù)的原型對(duì)象和超類(lèi)的原型對(duì)象轉(zhuǎn)換原型繼承做善后處理。判斷父類(lèi)的原型對(duì)象的構(gòu)造器,防止簡(jiǎn)單原型中給更改為還原父類(lèi)原型對(duì)象的構(gòu)造器 類(lèi)的創(chuàng)建于實(shí)例對(duì)象 工廠(chǎng)模型創(chuàng)建對(duì)象 function CreatePerson ( name,sex,age ) { var obj = new ...

    lingdududu 評(píng)論0 收藏0
  • Extjs - model總結(jié)

    摘要:數(shù)據(jù)讀取器相當(dāng)于原始數(shù)據(jù)格式與標(biāo)準(zhǔn)數(shù)據(jù)格式之間的橋梁,它屏蔽了原始數(shù)據(jù)格式不同對(duì)程序開(kāi)發(fā)造成的影響。零是有效的,但空字符串無(wú)效。 用了Extjs快一年了,這里整理一下model。 數(shù)據(jù)模型 showImg(https://segmentfault.com/img/bVzXAR); Extjs 中數(shù)據(jù)包總共包含了40多個(gè)類(lèi),其中有三個(gè)類(lèi)比其他類(lèi)有更重要的地位,它們分別是:model、st...

    EastWoodYang 評(píng)論0 收藏0
  • extjs-mvc結(jié)構(gòu)實(shí)踐(三):完善基本頁(yè)面

    摘要:上篇實(shí)現(xiàn)了基本的代碼架構(gòu),控制器動(dòng)態(tài)加載功能以及一個(gè)基礎(chǔ)的頁(yè)面布局,本節(jié)開(kāi)始,將陸續(xù)完善這個(gè)頁(yè)面。頁(yè)面底部區(qū)域,主要顯示版權(quán)信息等,也可以顯示個(gè)時(shí)間啥的。。。頭部和底部定義完畢后,需要在中引入對(duì)應(yīng)位置。 上篇實(shí)現(xiàn)了基本的代碼架構(gòu),控制器動(dòng)態(tài)加載功能以及一個(gè)基礎(chǔ)的頁(yè)面布局,本節(jié)開(kāi)始,將陸續(xù)完善這個(gè)頁(yè)面。 目標(biāo) 如前所述,我們的頁(yè)面包含這么幾個(gè)區(qū)域: header: UI頂部區(qū)域,顯示系...

    zhkai 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<