this指向相关问题

this指向相关问题。本文章包含介绍this是什么、this的默认指向、怎么改变this、箭头函数和普通函数的区别,这些常被问到的面试题。


this是什么

this是函数执行时所在的环境。

普通函数的this在执行时才能知道,箭头函数没有this(因此他的this是外部函数的this)


函数的运行环境是怎样决定的呢?

this的设计,跟内存里面的数据结构有关系。


普通函数默认this绑定

默认绑定: 非严格模式下 this 指向全局对象,严格模式下 this 会绑定为 undefined


bind call apply 区别

call()、apply()、bind() 三个函数都能改变this指向

1、执行方式不同

call、apply 直接执行函数

bind 返回的是一个新的函数,所以要调用它才会被执行

2、第二个参数不一样

bind,call,apply第一个参数都是this指向,

第二个参数:

call 和 bind 的函数入参参数都用逗号分隔传入函数中

apply 的函数入参参数要放在一个数组里面传入函数中


箭头函数和普通函数的区别

1、箭头函数没有this,普通函数有this

箭头函数的this是外层函数的this在定义时就决定了,普通函数this在执行时才能知道

2、箭头函数不能作为构造函数

3、剪头函数没有this,因此也不能用bind、call、apply改变指向

4. 箭头函数没有原型属性

5. 不绑定arguments,用rest参数...解决

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容