In a previous question,我被鼓勵去問這個後續問題:如果我知道some.func
只需要一個參數,它會把函數some.func
包裝成類似(arg) => some.func(arg)
的東西有什麼區別?封閉函數的區別?
舉一個具體的例子:在我的其他問題,我觀察到一個令人驚訝的差異使用
.on("mouseover", tip.show)
之間對
.on("mouseover", (d) => tip.show(d))
在這種情況下,第一個版本確實有預期的行爲,而第二版本的行爲有所不同(請參閱jsfiddle of other question)。這裏的原因是我不小心讓tip
成爲全球性的。
更一般的問題:爲什麼他們的行爲不一樣呢?