mishcn
2015-05-03 20:38
var defaultConfig = getConfig.bind(null,"#CC0000","1024*768");
我的问题就是这里为什么要传入一个null,又为什么明明是第一个参数位置,怎么没传给colors,却传给了this?
网上也查查资料....
这里传入null,是因为这里使用bind主要目的是为了用它的第二个参数之后的参数(参数currying,或者简单理解为将函数调用进行拆分)
第一个参数是用来影响函数调用时的this值的,只是这个例子并不是讲这个点的。
也就是第2~4个参数,分别表示入参的1~3,一一对应。再仔细看看视频吧。
跟call和apply是一样的道理吧,第一个要传个对象,不需要对象值的时候就传个null
我理解bind绑定一个对象到一个对象上,第一个参数其实就是绑定的对象,当为null的时候,默认为全局。
function add(a,b,c){console.log(a,b,c,this);}
var a1=add.bind(null,1,2,3);
a1()
// 1 2 3 Window {top: Window, window: Window, location: Location, external: Object, chrome: Object…}
JavaScript深入浅出
281112 学习 · 1020 问题
相似问题