改变this指向的方法
2019-08-26 本文已影响0人
成长储存罐
箭头函数和普通函数的区别如下。
普通函数:根据调用我的人(谁调用我,我的this就指向谁)
箭头函数:根据所在的环境(我再哪个环境中,this就指向谁)
箭头函数没有自己的this, 它的this是继承而来; 默认指向在定义它时所处的对象(宿主对象),而不是执行时的对象, 定义它的时候,可能环境是window; 箭头函数可以方便地让我们在 setTimeout ,setInterval中方便的使用this
只要记住【 this 永远指向调用它的对象,new的时候,指向new出来的对象。】
1.call(),
2.apply(),
3.bind();
call和apply的区别
每个函数都包含两个非继承而来的方法:apply()和call()。
call与apply都属于Function.prototype的一个方法,所以每个function实例都有call、apply属性;
使用call方法参数必须写完整,不能支持数组。
var a =[1,2,3,9,8,7]
console.log(Math.max.call(null,a)) //不可行,参数必须逐个写出来,完整参数。
console.log(Math.max.call(null,1,2,3,9,8,7)) //可行。
console.log(Math.max.apply(null.a)) //可行。
使用apply参数可以支持数组,不用逐个写出来,直接用数组。