改变this指向的方法

箭头函数和普通函数的区别如下。

普通函数:根据调用我的人(谁调用我,我的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参数可以支持数组,不用逐个写出来,直接用数组。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容