Re: [問題] 練習javascript的時候 遇到困難了(物件)

看板Ajax作者 (大笨蛋... )時間12年前 (2013/03/23 09:14), 編輯推噓8(800)
留言8則, 8人參與, 最新討論串3/3 (看更多)
故事是這樣發生的.. 首先某人找到了一個可以附加給武器 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)

03/23 09:45, , 1F
還以為你在跟我開玩笑..結果還真的有點懂了
03/23 09:45, 1F

03/23 10:59, , 2F
超酷的XDD
03/23 10:59, 2F

03/23 12:03, , 3F
很推這種方式的教學
03/23 12:03, 3F

03/23 14:48, , 4F
推 太神奇了
03/23 14:48, 4F

03/25 10:13, , 5F
這很酷,不是嗎XDDDD
03/25 10:13, 5F

03/25 17:07, , 6F
coooooooooooooooooooooool
03/25 17:07, 6F

03/28 21:29, , 7F
懂了! 酷~~
03/28 21:29, 7F

03/31 11:00, , 8F
超讚的~
03/31 11:00, 8F
文章代碼(AID): #1HJG7u-x (Ajax)
文章代碼(AID): #1HJG7u-x (Ajax)