samtiger


          QQ:418148757
          Name:yangchuan
          數據加載中……
          flex基礎之函數對象
          Function
               在ecamscript規范中。函數都是一個Function類型的對象,

          而普通函數,和類定義的普通方法,以及類靜態方法都有不同的地方。
          相同點:
            他們都是Function類的對象。
          不同點:
             在作函數綁定上,(函數綁定:就是將函數賦值給另一個函數,或者利用call或apply方法將函數綁定到別的對象上調用)
             如果是類的普通函數綁定到別的對象上去,那么函數中的this,指的就是該類的實例,無論你是用call方式,還是將函數賦值給另一個對象,this始終指的就是先前函數所在的那個類的實例對象,而如果是一個普通函數,this指的就是當前綁定到的那個關聯對象。
          給對象動態創建的方法和普通函數一樣,因為該方法其實就是將一個匿名的普通函數賦給對象的方法變量的,如:obj.fun=function(str){alert(str)} 。
          綁定方式:比如obj.fun.call(obj2) 這個方式就是將fun函數綁定到obj2上執行
          第二種方式: obj2.funName= obj.fun; obj2.funName();
          為什么說第二種方式也是一種綁定,寫個例子證明一下:
          如果obj.fun()等價于obj.fun.call(obj);
          如果:obj2.funName= obj.fun; //因為函數是Function類型的對象,那么obj2.funName和 obj.fun一樣都是引用同一個對象。
          那么obj2.funName()也可等價于obj.fun.call(obj2);


          說明一下:類的靜態函數是定義類的時候就存在了它的Function對象,而類的普通函數則是在類 實例化的時候才生成對應的函數的Function對象

          關于call方法,詳見Function的call方法.api文檔。
          函數綁定:其實就是指,將一個函數臨時的賦給某個對象,該對象就臨時的擁有了這個函數,但實際上對象上是沒有這個函數定義的

          posted on 2010-04-14 10:41 sam.chuan.yang 閱讀(823) 評論(0)  編輯  收藏 所屬分類: flex基礎

          主站蜘蛛池模板: 肥西县| 乌拉特后旗| SHOW| 岚皋县| 古丈县| 侯马市| 永登县| 贡嘎县| 张家口市| 新乡市| 阳朔县| 峨山| 德惠市| 江津市| 合江县| 靖远县| 新乐市| 延庆县| 运城市| 沁源县| 宁蒗| 琼结县| 九寨沟县| 宜都市| 九江市| 抚远县| 通渭县| 宁阳县| 黔东| 渑池县| 河津市| 新田县| 柯坪县| 成武县| 疏勒县| 广宗县| 武川县| 合肥市| 宁都县| 连江县| 开封县|