this 对象
var name='Jack';
function show(){
console.log(this.name);
console.log(this);//window
}
window.show();
call(thisArg, arg1, arg2, ...)(可多参)
apply(thisArg, [argsArray])(只可传入两参,第二个参数是数组或类数组)
call和apply的第一个参数都是实例对象,都是为了改变this的值,功能一样,参数传递方法不一样(call传的是散的,apply传的是数组和类数组)
var apple={
color:'red',
say:function(){
console.log('my color is'+this.color)
}
};
var banana={
color:'yellow'
};
apple.say();//my color is red
apple.say.call(banana);//my color is yellow
apple.say.apply(banana);//my color is yellow
apply用法:
var arr=[1,2,3];
var arr0=[4,5];
Array.prototype.push.apply(arr,arr0);
console.log(arr);//(5) [1, 2, 3, 4, 5]