samtiger


          QQ:418148757
          Name:yangchuan
          數(shù)據(jù)加載中……
          flex基礎(chǔ)之函數(shù)對(duì)象
          Function
               在ecamscript規(guī)范中。函數(shù)都是一個(gè)Function類型的對(duì)象,

          而普通函數(shù),和類定義的普通方法,以及類靜態(tài)方法都有不同的地方。
          相同點(diǎn):
            他們都是Function類的對(duì)象。
          不同點(diǎn):
             在作函數(shù)綁定上,(函數(shù)綁定:就是將函數(shù)賦值給另一個(gè)函數(shù),或者利用call或apply方法將函數(shù)綁定到別的對(duì)象上調(diào)用)
             如果是類的普通函數(shù)綁定到別的對(duì)象上去,那么函數(shù)中的this,指的就是該類的實(shí)例,無(wú)論你是用call方式,還是將函數(shù)賦值給另一個(gè)對(duì)象,this始終指的就是先前函數(shù)所在的那個(gè)類的實(shí)例對(duì)象,而如果是一個(gè)普通函數(shù),this指的就是當(dāng)前綁定到的那個(gè)關(guān)聯(lián)對(duì)象。
          給對(duì)象動(dòng)態(tài)創(chuàng)建的方法和普通函數(shù)一樣,因?yàn)樵摲椒ㄆ鋵?shí)就是將一個(gè)匿名的普通函數(shù)賦給對(duì)象的方法變量的,如:obj.fun=function(str){alert(str)} 。
          綁定方式:比如obj.fun.call(obj2) 這個(gè)方式就是將fun函數(shù)綁定到obj2上執(zhí)行
          第二種方式: obj2.funName= obj.fun; obj2.funName();
          為什么說(shuō)第二種方式也是一種綁定,寫(xiě)個(gè)例子證明一下:
          如果obj.fun()等價(jià)于obj.fun.call(obj);
          如果:obj2.funName= obj.fun; //因?yàn)楹瘮?shù)是Function類型的對(duì)象,那么obj2.funName和 obj.fun一樣都是引用同一個(gè)對(duì)象。
          那么obj2.funName()也可等價(jià)于obj.fun.call(obj2);


          說(shuō)明一下:類的靜態(tài)函數(shù)是定義類的時(shí)候就存在了它的Function對(duì)象,而類的普通函數(shù)則是在類 實(shí)例化的時(shí)候才生成對(duì)應(yīng)的函數(shù)的Function對(duì)象

          關(guān)于call方法,詳見(jiàn)Function的call方法.api文檔。
          函數(shù)綁定:其實(shí)就是指,將一個(gè)函數(shù)臨時(shí)的賦給某個(gè)對(duì)象,該對(duì)象就臨時(shí)的擁有了這個(gè)函數(shù),但實(shí)際上對(duì)象上是沒(méi)有這個(gè)函數(shù)定義的

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

          主站蜘蛛池模板: 丰原市| 四会市| 绩溪县| 应城市| 无锡市| 固始县| 自治县| 财经| 浪卡子县| 梅河口市| 大庆市| 澄迈县| 商洛市| 泰兴市| 保德县| 迁西县| 普定县| 江北区| 贵溪市| 崇明县| 日土县| 普宁市| 徐水县| 察隅县| 社旗县| 故城县| 岳阳市| 滦南县| 辰溪县| 同仁县| 明溪县| 甘洛县| 石楼县| 德安县| 项城市| 梁河县| 水城县| 康定县| 县级市| 公安县| 旌德县|