带你读书之“红宝书”:第十章 函数⑥

「这是我参与2022首次更文挑战的第37天,活动详情查看:2022首次更文挑战

写在前头

大多数小伙伴看技术书籍都会用“啃”来描述读书的直观感受,当然我也是一个前端小白,白的透明那种,但是我在读技术书籍感觉到“啃”的时候,我希望把我啃红宝书第四版的过程的想法,总结带给大家,以供后来者能够更快上手。

注: 本文由于作者水平原因,如有错误之处,恳请大家指正,另外随着学习的深入,体会的加深,我会不断回来更新,修改这类文章。

思维导图

image.png

简述

函数这一章其实在有一定的编程基础,比如学过一点c语言就很好读下去。整体还是易读板块。

10.9函数内部

image.png

  • 10.9.1 arguments对象

① 一个类数组对象。

② arguments对象包含调用函数时传入的所有参数

③箭头函数没有arguments对象。

④包含callee 属性,是一个指向 arguments 对象所在函数的指针。
也就是 arguments.callee == 函数名。

  • 10.9.2 this

this指向不同的对象会有不同的结果。

①标准函数

this 引用的是把函数当成方法调用的上下文对象。

注意: 在网页的全局上下文中调用函数时,this 指向 windows

②箭头函数

this引用的是定义箭头函数的上下文。

注意: 在事件回调或定时回调中调用某个函数时,this 值指向的并非想要的对象。

解决方法: 箭头函数中的 this 会保留定义该函数时的上下文 所以把回调函数写成箭头函数就可以解决问题。

  • 10.9.3 caller

    ①引用

    降低耦合度 使用arguments.callee.caller。显示指向函数的源代码。

    ②严格模式

  • arguments.callee

①在严格模式下访问 arguments.callee 会报错。

②在非严格模式下则始终是 undefined

  • arguments.caller

    安全防护

    以上的改动使得第三方代码无法检测同一上下文中运行的其他代码。

    赋值

    不能给函数的 caller 属性赋值,赋值会导致错误。

  • 10.9.4 new.target

    用于检测函数是否使用 new 关键字调用

①函数作用

函数是正常调用的,new.target 的值是 undefined。

②检测函数是否使用new关键字

使用 new 关键字调用的,则 new.target 将引用被调用的构造函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值