1 fun.bind(thisArg[, arg1[, arg2[, ...]]])
这个thisArg谁能解释一下是什么吗?
与bind类似的方法还有call和apply,其中的第一个参数都可以理解为 "将自己伪装成参数的成员函数" 其中call和apply 都会立即执行,bind会返回一个新方法。
如:
function fun(x,y){}
var thisArg = {};
var fun2 = fun.bind(thisArg)
fun2(1,2)
效果等同于
var thisArg = {fun2:function(x,y){}};
thisArg.fun2(1,2);
https://msdn.microsoft.com/library/ff841995(v=vs.94).aspx
thisArg
必选。this 关键字可在新函数中引用的对象。
。。。还是不太懂
function person(name,age){
this.name=name;
this.age=age
}
1 var s=person.bind(null,'we') 2 3 var ss=new s(23) 4 undefined 5 ss 6 person {name: "wen", age: 23}
1 var sw=person.bind({},'we') 2 undefined 3 var ww=new sw('we',23) 4 undefined 5 ww 6 person {name: "we", age: "we"} 7 var s=person.bind(this)
1 var s=person.bind(this) 2 undefined 3 var ss=new s('we',23) 4 undefined 5 ss 6 person {name: "wee", age: 23}
就是这个thisArg取了null,{},this;然后返回的值都是person {name: "we", age: 23}是为什么呢?这个参数是没有实质意义的吗