顯示廣告
隱藏 ✕
※ 本文為 xxxx9659.bbs. 轉寄自 ptt.cc 更新時間: 2013-03-28 21:32:08
看板 Ajax
作者 fwfly (大笨蛋... )
標題 Re: [問題] 練習javascript的時候 遇到困難了(物件)
時間 Sat Mar 23 09:14:29 2013


故事是這樣發生的..
首先某人找到了一個可以附加給武器 b 火焰屬性的魔法書 B

window.B = function(){

             this.b = function(){
                console.log( 'fire ball!!!' ) ;
             }
           }

接著某人手上有把武器 b 帶有水屬性的攻擊
window.b = function()
           {
              console.log( 'water atteck!!!!' ) ;
           }

接著某人使用了這個魔法書
window.B();

讓我們來偷看一下到底怎麼施加的秘密!
window.B = function(){

    this.b = function(){ // this 就是  window
         console.log( 'fire ball!!!' ) ;
    }
}

並且拿出來練刀, 然後心想喔! 早知道就換成火焰!
window.b(); // fire ball!!!!

所以某人到底是.....請按\文字模式
------------------------------------------------------------
套句程式說的話
"javascript 的 function 不在乎原先宣告的地方,他在乎的是使用他"
這邊從頭到尾都是 window 在使用 B 這個 function, 裡所當然的就是更換 window.b
的內容
window 就是瀏覽器會自動幫你產生的物件, 當你已為你在使用全域變數時
其實都是 window.global = global function 加到這個人身上.
---------------------------------------------------------------

Q & A 現在換你了!( 請把文字模式切回來避免看到答案  )

如果有個人 tank 的武器是風屬性他想要帥器的火焰屬性, 請問要怎麼換?
在這邊我先幫你建一小段


var tank = {}; // 首先產生 tank 這個人
tank.b = function(){  console.log("wind attack!!!") }; // tank 拿到了風屬性的武器
tank.b(); // tank 發出攻擊 wind attack!!!

他覺得這超不 cool.......我想換成火焰, 請利用剛剛的程式碼幫他換一下

Ans :
        tank.B = B // 他跟 window 要了這個捲軸
        tank.B();  // 它使用了這個捲軸
        tank.b();  // 火焰球!!!!!
        他現在覺得超酷的! 是不是!!






--
╔═══╗
║fw.fly║
╚═══╝http://www.wretch.cc/blog/fwfly116

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.252.91.115
※ 編輯: fwfly           來自: 111.252.91.115       (03/23 09:17)
coldollsheep:還以為你在跟我開玩笑..結果還真的有點懂了1F 03/23 09:45
Rplus:超酷的XDD2F 03/23 10:59
dlikeayu:很推這種方式的教學3F 03/23 12:03
timmy5519:推 太神奇了4F 03/23 14:48
b12031106:這很酷,不是嗎XDDDD5F 03/25 10:13
b92310051:coooooooooooooooooooooool6F 03/25 17:07
xxxx9659:懂了! 酷~~7F 03/28 21:29

--
※ 看板: xxxx9659 文章推薦值: 0 目前人氣: 0 累積人氣: 111 
分享網址: 複製 已複製
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇