推 Luos: console 是什麼? 09/08 17:28
console.log 可以看成是 printf
推 hcmlinj: 請教如果mybaseFunction是用arrow function如何bind呢? 09/08 17:41
推 hcmlinj: var mybaseFunction=(str1,str2) => this.log(str1,str2) 09/08 17:44
已經用 arrow function 的話就沒得改 this 啦,頂多只能 curry 了。
這就是為什麼 this 本來的設計比 bind 靈活得多。
→ clonn: console ~= c 的 printf 09/08 19:11
→ clonn: mybaseFuction.bind ... 用法同內文 09/08 19:12
→ mister12: 請問bind的優點是什麼呢? 09/08 19:37
推 CaptainH: 作用就是彌補js可笑的this設計 09/08 20:02
我不覺得可笑欸,原本的 this 雖然有複雜度,
但給了 mix-in 很多可以做的空間。
※ 編輯: TonyQ (223.137.146.1), 09/08/2016 21:27:28
※ 編輯: TonyQ (223.137.146.1), 09/08/2016 21:28:05
推 CaptainH: this 完全可以放到參數列表裡 09/08 22:06
推 CaptainH: 一舉消去了複雜性,更免去了bind call apply 等等冗餘 09/08 22:09
→ CaptainH: 函數 09/08 22:09
照 functional 的作法是這樣,
但如果有複雜的 state 要傳遞,那就會有額外的複雜度。
不用 this 的話,
那已經可說完全不是 bind or this 的問題了。XD
推 CRPKT: 沒有 this 物件模形怎麼做呢 09/08 22:26
→ y3k: Java跟JavaScript真的是狗跟熱狗啊.... 09/08 23:41
推 CoNsTaR: 不過會有 this 的問題是不是因為把該是 member 的做成了 09/08 23:52
→ CoNsTaR: free function 呢? 09/08 23:52
→ CoNsTaR: 完全不懂 javascript 還請指教 09/08 23:52
我會覺得你的描述反了喔。XD
如果把函示跟類別視為是一種契約論(約定 input/output/member ),
this 實質上是一種額外的契約。
只是說在 js 裡面 member 的 function 比較靈活,
還可以單獨拆出來用而已。
我是覺得這塊比較接近 mix-in 的概念啦。
這塊牽扯到我們認為「function」該怎麼跟多個類別耦合...
是要走繼承呢,還是走契約(this)呢。
這其實是程式語言層次的問題。
→ TSW: 樓上不要在這邊問啦,去 ajax 版問 09/09 04:34
※ 編輯: TonyQ (223.137.146.1), 09/09/2016 05:51:32
推 Luos: 多謝這篇解決我多年的疑惑 09/09 14:53