如图所示。
call bind 合起来用不是很理解。为什么这样写。
还请各位大佬解释一番。感激不尽
这么写没有任何意义,徒增代码复杂度而已。
原因直接看代码:
Function.call.bind === Function.bind // true
------更新-----
Function.bind(xxx) 会报错, 因垂死听.
具体原因应该是
Function.bind会生成的native code函数,如果参数是对象类型会变成:
(function anonymous([object Object]
) {
d
})
普通类型没事。
Function.call.bind 会生成一函数,这个函数参数什么的不会被改造成上面的形式。
本质原因? 不清楚
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
5 回答2.2k 阅读
3 回答1.7k 阅读✓ 已解决
5 回答829 阅读
4 回答2.2k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
首先不能使用
Function.bind
,因为这是替换Function
的指针,也就是Function({a:1})
当然报错。其次,为什么要用
Function.call.bind
,他可以帮我们替换hasOwnProperty
的this
,并且把除了this
的这个参数扔进hasOwnProperty
里执行。这类似于