我在看JS高级程序时候,第22章提及了bind
箭头指出的地方为什么要return? 我并不是很能理解,所以当我删除了箭头指出的return的时候,事件也能执行啊.
bind 目的只是绑定函数上下文也就是函数内部的this指向,不能改变函数原来的行为。
这个例子中 handleClick 没有返回值,所以有木有return一样,但是如果某个事件需要关心事件处理函数的返回值呢?
例如 返回 false 会 preventDefault() 等。
那开发的时候 handleClick 里写了个return false,结果却不起作用,这就是传说中的坑。
你的示例中,bind 函数全部是副作用…对全是副作用(改 dom 啊,alert 啊,发请求啊之类)的函数,你 return 什么都没有意义。
最简单的例子,需要 bind 后返回值时:
newFn = oldFn.bind(this)
// ...
var x = newFn() // undefined
这时内层的 return 就是必须的。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
是可以执行,但不能只针对这种情形,要是我要bind的fn是一个需要返回值的函数呢?