JAVA & XML & JAVASCRIPT & AJAX & CSS

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            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的,還應該加入?yún)?shù)傳遞.
          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 技術資源 閱讀(1272) 評論(1)  編輯  收藏 所屬分類: Javascript

          評論

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

          十分感謝~  回復  更多評論
            

          主站蜘蛛池模板: 宜城市| 五大连池市| 澜沧| 大方县| 清河县| 襄樊市| 光山县| 鹤壁市| 乡城县| 施甸县| 仪陇县| 建宁县| 大安市| 木里| 淮滨县| 右玉县| 盐津县| 沙河市| 都江堰市| 金湖县| 贵港市| 延川县| 郑州市| 辰溪县| 会同县| 金沙县| 双柏县| 琼中| 新和县| 隆德县| 武功县| 临西县| 马公市| 湟中县| 鲁山县| 大余县| 中阳县| 永兴县| 辽宁省| 贞丰县| 海伦市|