首页 新闻 会员 周边

js的bind()

0
悬赏园豆:5 [已解决问题] 解决于 2016-09-01 16:23
1 fun.bind(thisArg[, arg1[, arg2[, ...]]])

 


这个thisArg谁能解释一下是什么吗?
改吧的主页 改吧 | 初学一级 | 园豆:104
提问于:2016-08-29 15:53
< >
分享
最佳答案
0

与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);

收获园豆:5
长蘑菇星人 | 小虾三级 |园豆:1832 | 2016-08-29 16:40
其他回答(1)
0

https://msdn.microsoft.com/library/ff841995(v=vs.94).aspx

thisArg

必选。this 关键字可在新函数中引用的对象。

刘宏玺 | 园豆:14020 (专家六级) | 2016-08-29 16:00

。。。还是不太懂

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}是为什么呢?这个参数是没有实质意义的吗

支持(0) 反对(0) 改吧 | 园豆:104 (初学一级) | 2016-08-29 16:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册