问答详情
源自:6-4 [JavaScript]函数属性arguments

关于bind的问题

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

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

提问者:mishcn 2015-05-03 20:38

个回答

  • Bosn
    2015-05-08 09:59:22

    网上也查查资料....

  • Bosn
    2015-05-08 09:59:07

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


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

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

  • 定定
    2015-06-05 22:57:04

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

  • arlenhui
    2015-05-27 18:49:40

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