03-this相关问题与箭头函数

目录

this的作用

this是什么时候创建的?

this在全局作用域的指向

this到底指向什么

绑定规则一:默认绑定

绑定规则二:隐式绑定

绑定规则三:显示绑定(call,apply,bind)

 绑定规则四:new绑定

内置函数this的绑定

 规则优先级

规则之外

箭头函数

 箭头函数this的获取

 面试题

arguments相关

 arguments转array

 补充:slice()的实现

 箭头函数不绑定arguments

箭头函数推荐args


this的作用

在js中没有this也是有其他解决方案的,但会比较麻烦

this是什么时候创建的?

this通常在函数中使用

当函数被调用时,会创建一个执行上下文,这个上下文记录着函数调用栈,AO对象,也记录了this

this是动态赋值的,与函数创建位置没关系,与调用方式有关系

this在全局作用域的指向

在浏览器上: this->window

在node环境:this->{}  原因:node把js文件当成一个模块

         module -> 加载 -> 编译 -> 放到一个函数 -> 执行这个函数.call({})

this到底指向什么

绑定规则一:默认绑定

 函数都是独立调用,this默认绑定全局对象

严格模式下,独立调用函数中this指向undefined

绑定规则二:隐式绑定

 隐式绑定就是谁调的函数,this绑定谁

绑定规则三:显示绑定(call,apply,bind)

 绑定规则四:new绑定

内置函数this的绑定

当我们调用某些API时,传入函数作为参数,在函数中打印this,this绑定谁呢?

 主要是根据经验

 dom事件的回调函数中this指向e.currentTarget,

 规则优先级

new绑定  >  显示绑定(call/apply/bind) > 隐式绑定 >  默认绑定(独立调用)

注意:new绑定不能和call apply同时使用(都是调用函数),只能比较new 与 bind  , new> bind

规则之外

另一种规则之外就是箭头函数

箭头函数

 箭头函数this的获取

 箭头函数没有this!!!!!!!!

箭头函数获取外层作用域的this

 面试题

arguments相关

arguments是一个对应于传递给函数的参数的类数组对象

在函数被调用时,函数执行上下文时,储存AO对象中

 arguments转array

arguments是一个类数组,有时需要把它转为数组(很少用到,箭头函数中也没有arguments了)

 补充:slice()的实现

 箭头函数不绑定arguments

箭头函数是不绑定arguments的,在箭头函数中使用arguments会往上层作用域查找,直到全局

在浏览器上,全局下是没有argumets的

在node环境中,全局下有arguments(node会将js文件当成一个moudel放到函数中)

箭头函数推荐args

 ...args是剩余参数

打印:[30,40,50]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值