bind()实现中的 [].concat.call(args, [].slice.call(arguments)
n2meetu opened this issue · comments
为什么要把参数再拼接concat一次?[].concat.call(args, [].slice.call(arguments)
最后一行代码的这个部分没有理解。
bind获取原函数,获取传入的参数,然后利用 原函数.call(新的上下问,参数)
,这个理解对吗
为什么要把参数再拼接concat一次?
[].concat.call(args, [].slice.call(arguments)
最后一行代码的这个部分没有理解。bind获取原函数,获取传入的参数,然后利用
原函数.call(新的上下问,参数)
,这个理解对吗
args是第一个括号的参数,arguments是第二个括号的参数鸭,用concat就把他们装在了一起,成为了一个数组,然后执行~emmm
font{
line-height: 1.6;
}
ul,ol{
padding-left: 20px;
list-style-position: inside;
}
第一个括号和第二个括号指的是啥?
zwandyzf
zwandyzf@gmail.com
在2018年09月27日 14:23,chenshi<notifications@github.com> 写道:
为什么要把参数再拼接concat一次?[].concat.call(args, [].slice.call(arguments)最后一行代码的这个部分没有理解。
bind获取原函数,获取传入的参数,然后利用 原函数.call(新的上下问,参数),这个理解对吗
args是第一个括号的参数,arguments是第二个括号的参数鸭用concat就把他们装在了一起,成为了一个数组,然后执行emmm
—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or mute the thread.
分三步走:
第一步:在 func = xxx.bind(this,参数1)时“预先”塞了第一波参数,这是第一个括号的参数,即args
第二步:后面调用func(参数2)执行时“正式”塞了第二波参数,这是第二个括号的参数,即arguments
第三步,在调用apply执行时,自然要把这两波参数汇总起来放进去