JAVA & XML & JAVASCRIPT & AJAX & CSS

          Web 2.0 技術儲備............

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            77 隨筆 :: 17 文章 :: 116 評論 :: 0 Trackbacks
          ?1?var?ClassUSA=function()
          ?2?
          ?3?{
          ?4?
          ?5???this.value='USA';
          ?6?
          ?7???this.getOtherValue=function()
          ?8?
          ?9???{
          10?
          11???}
          12?
          13?}
          14?
          15?var?ClassChina=function()
          16?
          17?{
          18?
          19???this.value='China';
          20?
          21???this.show=function()
          22?
          23???{
          24?
          25?????document.write(this.value);
          26?
          27???}
          28?
          29?}
          30?
          31?var?USA=new?ClassUSA();
          32?
          33?var?China=new?ClassChina();
          34?
          35?<需求一>在document上顯示USA的value.
          36?
          37?方案一:
          38?
          39?USA.show=China.show;
          40?
          41?方案二:
          42?
          43?China.show.apply(USA);
          44?
          45?方案一使USA擁有了方法show,而方案二沒有使USA擁有方法show.
          46?
          47?<需求二>
          48?
          49?使USA的show方法顯示China的value.(有這樣的需要.只是這個例子不是很恰當.這里先不考慮這些.)
          50?
          51?有兩個要點,一是要使USA擁有show方法,二是要顯示的不是USA的value而是China的value.
          52?
          53?方案一:
          54?
          55?給China增加方法:
          56?
          57?ClassChina.show2=function()
          58?
          59?{
          60?
          61???return?function(){return?this.value;};
          62?
          63?}
          64?
          65?使用:
          66?
          67?USA.show=China.show2.apply(China);
          68?
          69?USA.show();
          70?
          71?方案二:
          72?
          73??
          74?
          75?Function.prototype.bind=function(object)
          76?
          77?{
          78?
          79?????var?_method=this;
          80?
          81?????return?function(){return?_method.apply(object);};
          82?
          83?}//簡化的bind的,還應該加入參數傳遞.
          84?
          85?USA.show=China.show.bind(China);
          86?
          87?使用:
          88?
          89?USA.show();
          90?
          91??
          92?
          93?OVER.
          94?
          posted on 2006-08-16 09:40 Web 2.0 技術資源 閱讀(1273) 評論(1)  編輯  收藏 所屬分類: Javascript

          評論

          # re: JAVASCRIPT & 動態綁定 & 閉包prototype 2008-11-28 10:23 clue
          哇,第一次知道有這種方法!

          十分感謝~  回復  更多評論
            

          主站蜘蛛池模板: 青田县| 股票| 集贤县| 梅河口市| 盈江县| 镇安县| 龙游县| 神农架林区| 鄂伦春自治旗| 漳平市| 商丘市| 治县。| 农安县| 临潭县| 亳州市| 中阳县| 封开县| 克山县| 龙川县| 延吉市| 清远市| 徐水县| 中山市| 永平县| 运城市| 昆山市| 四平市| 玉山县| 成都市| 海晏县| 鄂托克前旗| 凌云县| 浠水县| 新邵县| 大渡口区| 慈利县| 铜山县| 嘉义县| 阿坝县| 安溪县| 平陆县|