12.3默寫

  • 封裝tab選項(xiàng)卡
function Tab(id){
    //this=>實(shí)例對(duì)象 這個(gè)實(shí)例對(duì)象下面有三個(gè)屬性
    this.oParent = document.getElementById(id);
    this.aInput = this.oParent.getElementsByTagName("input");
    this.aDiv = this.oParent.getElementsByTagName("div");
}
Tab.prototype.init=function(){
    var This = this;//存儲(chǔ)tab實(shí)例對(duì)象
    for(var i = 0; i<this.aInput.length; i++){
        this.aInput[i].index = i;//添加自定義屬性
        this.aInput[i].onclick = function(){
            //this==>btn,期望實(shí)例對(duì)象去掉用change
            This.change(this);
        }
    }
}
Tab.prototype.change = function(obj){
    for(var j = 0; j<this.aInput.length; j++){
        //aInput[j] aDiv[j]
        this.aInput[j].className="";
        this.aDiv[j].style.display = "none";
    }
    obj.className = "active";//這里的this期望指的是btn
    //當(dāng)this發(fā)生沖突的時(shí)候,保大對(duì)象
    this.aDiv[obj.index].style.display = "block";
}

window.onload = function(){
    var t1 = new Tab("div1");
    t1.init();
    var t2 = new Tab("div2");
    t2.init();
    var t3 = new Tab("div3");
    t3.init();
}
  • 拷貝繼承
//掌握拷貝繼承,了解原型繼承和類式繼承
function CreatePerson(name,sex){
    this.name = name;
    this.sex = sex;
}
CreatePerson.prototype.showName = function(){
    alert(this.name);
}
var p1 = new CreatePerson("zhangsan","男");
//p1.showName();
//現(xiàn)在來一個(gè)學(xué)生類 屬性:name,sex,address
//分析:一個(gè)學(xué)生類:屬性和方法 分開繼
function Student(name,sex,address){
    //繼承父類,人類 name,sex  this==>學(xué)生
    CreatePerson.call(this,name,sex);
    //name,sex繼承成功,把CreatePerson的th指向指向到當(dāng)前student類
    this.address = address;
}
extend(CreatePerson.prototype,Student.prototype);
function extend(obj1,obj2){
    for(var attr in obj1){
        obj2[attr] = obj1[attr];
    }
}
var s1 = new Student("lisi","女","武漢");
s1.showName();
  • 原型繼承
var a = {
    name:"張三"
}
var b  = cloneObj(a);//沒有用有用到new
function cloneObj(obj){
    //創(chuàng)建一個(gè)代理函數(shù)
    var F = function(){};
    F.prototype = obj//用代理函數(shù)接收要被繼承的對(duì)象
    return new F();//返回的是代理函數(shù)的實(shí)例
}
alert(b.name);
b.name = "李四"
alert(a.name);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 手動(dòng)閥為威風(fēng)威風(fēng)為微信選項(xiàng)錯(cuò)V型從V型從V型從v1手動(dòng)閥為威風(fēng)威風(fēng)為微信選項(xiàng)錯(cuò)V型從V型從V型從v1手動(dòng)閥為威風(fēng)威...
    550ET閱讀 2,619評(píng)論 0 0
  • ##**理解對(duì)象**## --- ###**屬性類型** > JavaScript中有兩種屬性類型 分別是 數(shù)據(jù)屬...
    nullunde閱讀 365評(píng)論 0 0
  • 學(xué)習(xí)儒家文化,應(yīng)該先了解2500年前的孔老夫子到底生活在什么樣的環(huán)境下,又是經(jīng)歷了什么…… 很久以...
    德天下育人生閱讀 872評(píng)論 1 3
  • (一)爸爸很愛我的 2011-06-11當(dāng)時(shí)寶貝是3歲半。 昨天我買了一盤櫻桃。最后剩了6個(gè)櫻桃,擺在那里很久都沒...
    你的密碼給我閱讀 327評(píng)論 0 0

友情鏈接更多精彩內(nèi)容