为了账号安全,请及时绑定邮箱和手机立即绑定

关于bind的问题

var defaultConfig = getConfig.bind(null,"#CC0000","1024*768");

我的问题就是这里为什么要传入一个null,又为什么明明是第一个参数位置,怎么没传给colors,却传给了this?

正在回答

6 回答

网上也查查资料....

0 回复 有任何疑惑可以回复我~

这里传入null,是因为这里使用bind主要目的是为了用它的第二个参数之后的参数(参数currying,或者简单理解为将函数调用进行拆分)


第一个参数是用来影响函数调用时的this值的,只是这个例子并不是讲这个点的。

也就是第2~4个参数,分别表示入参的1~3,一一对应。再仔细看看视频吧。

0 回复 有任何疑惑可以回复我~

跟call和apply是一样的道理吧,第一个要传个对象,不需要对象值的时候就传个null

0 回复 有任何疑惑可以回复我~

我理解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…}


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript深入浅出
  • 参与学习       281112    人
  • 解答问题       1020    个

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

进入课程

关于bind的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信