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+'
'+
'a->'+a+'
'+
'b->'+b
);
}
var a=show.bind(12,2,5);
a();