func.bind(a).call(b) 问题出在哪儿 是因为 bind 不立即执行么 求指教
1
zhaixiaohu 2017-01-09 18:44:39 +08:00
五迷?
|
2
fds 2017-01-09 18:50:44 +08:00 1
截图里 a 已经是结果了呀,你还 call 啥?另外你这么用 bind 根本无效呀,何必呢……
|
3
cbais7890 2017-01-09 18:51:14 +08:00
bind 传一个 context 进去, 返回一个改变了 context 的新函数
call/apply 传 context 和一个或多个参数进去, 然后执行这个函数 |
4
Neytoph 2017-01-09 18:51:37 +08:00
@zhaixiaohu (举手)这有个五迷!
|
5
wangjialin OP |
6
haozhang 2017-01-09 19:42:25 +08:00 via iPhone 1
func.bind 之后 this 已被确定,再次调用 call 或者 apply 妄图改变绑定的 this 都会无效
|
7
wangjialin OP @haozhang 蟹蟹 我又重新认识了
|
8
gleox 2017-01-09 22:58:55 +08:00
|
9
zhaixiaohu 2017-01-10 10:01:47 +08:00
@Neytoph v 站五迷群: 5143163 ,来群一起玩啊
|
10
zhaixiaohu 2017-01-10 10:02:07 +08:00
@wangjialin v 站五迷群: 5143163 ,来群一起玩啊,都是码农五迷
|
11
Neytoph 2017-01-10 10:06:39 +08:00
@zhaixiaohu 已加!
|
12
fds 2017-01-10 11:49:59 +08:00
@wangjialin 啊,我说错了, bind 是有用的。 f.bind(a).call(b) 这里 call 能改变 bind 返回的函数的 this 为 b ,但 bind 里面包的函数 f 的 this 已经指定为 a 了,不能改了。
|
13
wangjialin OP @fds 我原意就是想问 this 指向 应该还指向 a
|
14
fhc023 2017-01-21 08:35:27 +08:00 via iPhone
推荐你把这本书的中间几章啃一遍 https://book.douban.com/subject/3590768/ 能看英文就看英文吧 恩
|