码迷,mamicode.com
首页 > 移动开发 > 详细

call, apply, bind解析

时间:2015-12-16 12:10:30      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

var xw = {
name : "小王",
gender : "男",
age : 24,
say : function(sch, jun) {
console.log(arguments);
//console.log(this.name + "," + this.gender + ",今年" + this.age);
}
};

var xh = {
name : "小红",
gender : "女",
age : 18
};

xw.say();
xw.say.call(xh, "xiaoxue", "1nianjia");
xw.say.apply(xh, ["xiaoxue", "1nianjia"]);
var g = xw.say.bind(xh);
g("xiaoxue", "1nianjia")
xw.say.bind(xh, "xiaoxue", "1nianjia")();
xw.say.bind(xh)("xiaoxue", "1nianjia");
apply适合传递的参数是数组,比如arguments这样的参数。
如果你把arguments用call的方法传递的话,那么它到了另一个方法里边就是另一个方法的第一个参数,这两种情况就看自己怎么选吧~
bind返回的是一个函数,然后这个函数中的this指向第一个参数

function show(a,b){
alert(‘this->‘+this+‘\n‘+
‘a->‘+a+‘\n‘+
‘b->‘+b
);
}

var a=show.bind(12,2,5);

a();

call, apply, bind解析

标签:

原文地址:http://www.cnblogs.com/king-bj/p/5050576.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!