<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    美麗涵涵童裝店--說我博客名字,給你們打折!
    隨筆 - 82  文章 - 266  trackbacks - 0
    <2008年8月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456


    點(diǎn)擊這里給楊愛友發(fā)消息
    美麗涵涵童裝店
    說我博客名字,給你們打折!

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章檔案

    好友的BLOG

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    [轉(zhuǎn)載于 http://www.aspxhome.com/javascript/start/20078/148126.htm,并做了少量修改]

    this指針是面向?qū)ο蟪绦蛟O(shè)計(jì)中的一項(xiàng)重要概念,它表示當(dāng)前運(yùn)行的對(duì)象。在實(shí)現(xiàn)對(duì)象的方法時(shí),可以使用this指針來獲得該對(duì)象自身的引用。

      和其他面向?qū)ο蟮恼Z言不同,JavaScript中的this指針是一個(gè)動(dòng)態(tài)的變量,一個(gè)方法內(nèi)的this指針并不是始終指向定義該方法的對(duì)象的,在上一節(jié)講函數(shù)的apply和call方法時(shí)已經(jīng)有過這樣的例子。為了方便理解,再來看下面的例子:

    <script language="JavaScript" type="text/javascript">  
    <!--  
    //創(chuàng)建兩個(gè)空對(duì)象  
    var obj1=new Object();  
    var obj2=new Object();  
    //給兩個(gè)對(duì)象都添加屬性p,并分別等于1和2  
    obj1.p=1;  
    obj2.p=2;  
    //給obj1添加方法,用于顯示p的值  
    obj1.getP=function(){  
          alert(this.p); //表面上this指針指向的是obj1  
    }  
    //調(diào)用obj1的getP方法  
    obj1.getP();  
    //使obj2的getP方法等于obj1的getP方法  
    obj2.getP=obj1.getP;  
    //調(diào)用obj2的getP方法  
    obj2.getP();  
    //-->  
    </script>
      從代碼的執(zhí)行結(jié)果看,分別彈出對(duì)話框顯示1和2。由此可見,getP函數(shù)僅定義了一次,在不同的場(chǎng)合運(yùn)行,顯示了不同的運(yùn)行結(jié)果,這是有this指針的變化所決定的。在obj1的getP方法中,this就指向了obj1對(duì)象,而在obj2的getP方法中,this就指向了obj2對(duì)象,并通過this指針引用到了兩個(gè)對(duì)象都具有的屬性p。

      由此可見,JavaScript中的this指針是一個(gè)動(dòng)態(tài)變化的變量,它表明了當(dāng)前運(yùn)行該函數(shù)的對(duì)象。由this指針的性質(zhì),也可以更好的理解JavaScript中對(duì)象的本質(zhì):一個(gè)對(duì)象就是由一個(gè)或多個(gè)屬性(方法)組成的集合。每個(gè)集合元素不是僅能屬于一個(gè)集合,而是可以動(dòng)態(tài)的屬于多個(gè)集合。這樣,一個(gè)方法(集合元素)由誰調(diào)用,this指針就指向誰。實(shí)際上,前面介紹的apply方法和call方法都是通過強(qiáng)制改變this指針的值來實(shí)現(xiàn)的,使this指針指向參數(shù)所指定的對(duì)象,從而達(dá)到將一個(gè)對(duì)象的方法作為另一個(gè)對(duì)象的方法運(yùn)行。

    每個(gè)對(duì)象集合的元素(即屬性或方法)也是一個(gè)獨(dú)立的部分,全局函數(shù)和作為一個(gè)對(duì)象方法定義的函數(shù)之間沒有任何區(qū)別,因?yàn)榭梢园讶趾瘮?shù)和變量看作為window對(duì)象的方法和屬性。也可以使用new操作符來操作一個(gè)對(duì)象的方法來返回一個(gè)對(duì)象,這樣一個(gè)對(duì)象的方法也就可以定義為類的形式,其中的this指針則會(huì)指向新創(chuàng)建的對(duì)象。在后面可以看到,這時(shí)對(duì)象名可以起到一個(gè)命名空間的作用,這是使用JavaScript進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)技巧。例如:

    代碼片段

    var namespace1=new Object();  
    namespace1.class1=function(){  
         //初始化對(duì)象的代碼  
    }  
    var obj1=new namespace1.class1();  

      這里就可以把namespace1看成一個(gè)命名空間。  mootools中的FX就是一個(gè)命名空間。

    posted on 2008-08-06 22:33 楊愛友 閱讀(735) 評(píng)論(0)  編輯  收藏 所屬分類: java相關(guān)技術(shù)
    美麗涵涵童裝店
    親,說我博客名字,給你們打折!
    主站蜘蛛池模板: aaa毛片视频免费观看| 鲁啊鲁在线视频免费播放| 你懂得的在线观看免费视频| 国产99视频精品免费视频7| 国产精品亚洲专区无码牛牛| 成人午夜性A级毛片免费| 亚洲人成网站色在线观看| 欧美三级在线电影免费| 四虎必出精品亚洲高清| 性色av免费观看| 老司机午夜在线视频免费观| 亚洲七七久久精品中文国产| 国产精品免费看久久久香蕉| 亚洲日韩欧洲乱码AV夜夜摸| 97国免费在线视频| 亚洲国产精品久久久久| 91免费播放人人爽人人快乐| 亚洲精华国产精华精华液好用 | 曰批免费视频播放免费| 亚洲最大av无码网址| 国内精品免费视频精选在线观看 | 亚洲成A∨人片天堂网无码| 久久久精品视频免费观看 | 亚洲日韩精品无码专区 | 亚洲精品国产精品乱码在线观看| 成全高清在线观看免费| 亚洲黄色在线视频| 啦啦啦www免费视频| ssswww日本免费网站片| 亚洲第一香蕉视频| 日本高清免费aaaaa大片视频| 一个人晚上在线观看的免费视频| 亚洲成人激情在线| 免费看少妇作爱视频| 国产精品九九久久免费视频| 日韩亚洲AV无码一区二区不卡| 性感美女视频在线观看免费精品| 成人无码精品1区2区3区免费看| 亚洲欧洲综合在线| 亚洲午夜激情视频| 一二三四视频在线观看中文版免费 |