apply和call:改变this指向
//apply和call的使用方法
/*
* apply的使用语法:参数以数组的形式传递
* 函数名或方法名.apply(对象,[参数1,参数2,...]);
* call的使用语法:参数以枚举的形式传递
* 函数名或方法名.call(对象,参数1,参数2,...);
* 想要使用其他对象的某个方法:其他对象.方法名.apply(当前对象,参数,...);
* 这个方法就会被当前的对象所使用,同时这个方法中的this就是当前的对象,在调用方法的时候改变了this的指向
* 作用:改变this的指向
* 不同的地方:参数传递的方式是不一样的
*
* 只要是想使用别的对象的方法,并且希望这个方法是当前对象的,那么就可以使用apply或者是call的方法改变this的指向
*
* 实例对象调用方法,方法要么在实例对象中存在,要么在原型对象中存在
* */
function f1() {
console.log(this);
}
//f1是函数,f1也是对象
f1.apply();
f1.call(); //对象调用方法,说明该对象中有这个方法
console.log(f1.__proto__==Function.prototype);
//所有的函数都是Function的实例对象
console.log(Function.prototype);//ƒ () { [native code] }
//apply和call方法实际上并不在函数这个实例对象中,而是在Function的prototype中
//apply和call的使