改变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参数可以支持数组,不用逐个写出来,直接用数组。

上一篇下一篇

猜你喜欢

热点阅读