<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


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

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章檔案

    好友的BLOG

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

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

    this指針是面向對象程序設計中的一項重要概念,它表示當前運行的對象。在實現對象的方法時,可以使用this指針來獲得該對象自身的引用。

      和其他面向對象的語言不同,JavaScript中的this指針是一個動態的變量,一個方法內的this指針并不是始終指向定義該方法的對象的,在上一節講函數的apply和call方法時已經有過這樣的例子。為了方便理解,再來看下面的例子:

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

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

    每個對象集合的元素(即屬性或方法)也是一個獨立的部分,全局函數和作為一個對象方法定義的函數之間沒有任何區別,因為可以把全局函數和變量看作為window對象的方法和屬性。也可以使用new操作符來操作一個對象的方法來返回一個對象,這樣一個對象的方法也就可以定義為類的形式,其中的this指針則會指向新創建的對象。在后面可以看到,這時對象名可以起到一個命名空間的作用,這是使用JavaScript進行面向對象程序設計的一個技巧。例如:

    代碼片段

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

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

    posted on 2008-08-06 22:33 楊愛友 閱讀(744) 評論(0)  編輯  收藏 所屬分類: java相關技術
    美麗涵涵童裝店
    親,說我博客名字,給你們打折!
    主站蜘蛛池模板: 亚洲精品无码午夜福利中文字幕| 亚洲熟妇无码另类久久久| 亚洲激情校园春色| 午夜免费啪视频在线观看| 亚洲AV无码精品色午夜果冻不卡| 老司机精品免费视频| 久久久久亚洲AV片无码| 午夜精品一区二区三区免费视频| 亚洲国产一区在线| 精品国产污污免费网站aⅴ| 亚洲日本视频在线观看| 成视频年人黄网站免费视频| 中文字幕无码精品亚洲资源网久久| 国产香蕉九九久久精品免费 | 国产电影午夜成年免费视频| 亚洲黄色免费网站| 歪歪漫画在线观看官网免费阅读 | 亚洲va精品中文字幕| 最近中文字幕mv免费高清视频7| 亚洲狠狠婷婷综合久久蜜芽| 国产a不卡片精品免费观看| 精品人妻系列无码人妻免费视频| 最新国产AV无码专区亚洲| 久久青草免费91观看| 亚洲AV色吊丝无码| 亚洲成?v人片天堂网无码| 免费人成在线观看视频高潮| 亚洲视频在线免费看| 日韩免费视频播播| 在线涩涩免费观看国产精品 | 亚洲综合一区二区精品久久| 成全视频在线观看免费高清动漫视频下载 | 亚洲色婷婷综合开心网| 亚洲欧洲免费无码| 国产免费卡一卡三卡乱码| 国产99久久久国产精免费| 亚洲精品在线免费看| 国产精品国产自线拍免费软件| caoporm碰最新免费公开视频| 久久亚洲日韩看片无码| 国产一区二区三区在线免费 |