在看别人的源码的时候看到的
var slice=Function.prototype.call.bind(Array.prototype.slice),
function fireSync(eventName) {
_fire_func(eventName, slice(arguments, 1));
}
这么写有啥好处?
在看别人的源码的时候看到的
var slice=Function.prototype.call.bind(Array.prototype.slice),
function fireSync(eventName) {
_fire_func(eventName, slice(arguments, 1));
}
这么写有啥好处?
不知道你说的是这个赋值还是这个bind?就这个赋值而言,应该算是js的编码规范吧,这样避免了每次调用都要一步一步的引用,效率高。而bind方法就是给一个方法的this赋上值,你下次调用该方法的时候this就是你bind的参数。
var slice=Function.prototype.call.bind(Array.prototype.slice),
代码的意思是绑定(Array.prototype.slice)对象 到call原型方法中的this。
转义为Array.prototype.slice.call
。
由此slice(arguments, 1)
是不是跟Array.prototype.slice.call(arguments, 1)
一个意思了。
这样定义过的slice方法就可以直接调用了。重复写的话代码简短了。
纯属个人理解。希望能帮到你。
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
借用方法
http://www.zcfy.cc/article/bo...