
Re: [請益] 該怎麼理解javascript的bind?

: ref:
: https://facebook.github.io/react/docs/thinking-in-react.html
: google了一下,依然有看沒有懂。
: 請問有簡單解釋bind的教學頁面嗎?
理論上這應該到 ajax 版問啦...
var mybaseFunction = function(str1,str2){
this.log(str1,str2);
}
var consoleHelloFunction = mybaseFunction.bind(console,"Hello");
/*
上面這行等價於
consoleHelloFunction = function(str){
return mybaseFunction.apply(console,["Hello",str]);
}
*/
consoleHelloFunction("world");
--
他可以改變 this,也能做 curry 效果。
--
I have a dream, it's silly but beautiful.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.146.1
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1473324372.A.49B.html
推
09/08 17:28, , 1F
09/08 17:28, 1F
console.log 可以看成是 printf
推
09/08 17:41, , 2F
09/08 17:41, 2F
推
09/08 17:44, , 3F
09/08 17:44, 3F
已經用 arrow function 的話就沒得改 this 啦,頂多只能 curry 了。
這就是為什麼 this 本來的設計比 bind 靈活得多。
→
09/08 17:57, , 4F
09/08 17:57, 4F
→
09/08 19:11, , 5F
09/08 19:11, 5F
→
09/08 19:12, , 6F
09/08 19:12, 6F
→
09/08 19:37, , 7F
09/08 19:37, 7F
推
09/08 20:02, , 8F
09/08 20:02, 8F
我不覺得可笑欸,原本的 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
推
09/08 22:06, , 9F
09/08 22:06, 9F
推
09/08 22:09, , 10F
09/08 22:09, 10F
→
09/08 22:09, , 11F
09/08 22:09, 11F
照 functional 的作法是這樣,
但如果有複雜的 state 要傳遞,那就會有額外的複雜度。
不用 this 的話,
那已經可說完全不是 bind or this 的問題了。XD
推
09/08 22:26, , 12F
09/08 22:26, 12F
→
09/08 23:41, , 13F
09/08 23:41, 13F
推
09/08 23:52, , 14F
09/08 23:52, 14F
→
09/08 23:52, , 15F
09/08 23:52, 15F
→
09/08 23:52, , 16F
09/08 23:52, 16F
我會覺得你的描述反了喔。XD
如果把函示跟類別視為是一種契約論(約定 input/output/member ),
this 實質上是一種額外的契約。
只是說在 js 裡面 member 的 function 比較靈活,
還可以單獨拆出來用而已。
我是覺得這塊比較接近 mix-in 的概念啦。
這塊牽扯到我們認為「function」該怎麼跟多個類別耦合...
是要走繼承呢,還是走契約(this)呢。
這其實是程式語言層次的問題。
→
09/09 04:34, , 17F
09/09 04:34, 17F
※ 編輯: TonyQ (223.137.146.1), 09/09/2016 05:51:32
推
09/09 14:53, , 18F
09/09 14:53, 18F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
Soft_Job 近期熱門文章
40
131
PTT職涯區 即時熱門文章