用来改变函数的this对象的指向
var xw={ name: "小王", gender: "男", age: 24, say: function(){ alert(this.name+" , "+this.gender+" ,今年"+this.age); } } var xh={ name: "小红", gender: "女", age: 18 } xw.say();
调用:数组
xw.say.call(xh); xw.say.apply(xh); // call和apply都是对函数的直接调用,而bind方法返回的仍然是一个函数 xw.say.bind(xh)();
在有参数的状况下call和apply产生区别:app
var xw={ name: "小王", gender: "男", age: 24, say: function(school,grade){ alert(this.name+" , "+this.gender+" ,今年"+this.age+" ,在"+school+"上"+grade); } } var xh={ name: "小红", gender: "女", age: 18 }
调用形式:函数
xw.say.call(xh,"实验小学","六年级"); xw.say.apply(xh,["实验小学","六年级"]); xw.say.bind(xh,"实验小学","六年级")();