|
|
@ -54,6 +54,8 @@ this 是一个复杂的机制,JavaScript 标准定义了 \[\[ thisMode \]\] |
|
|
|
|
|
|
|
|
|
|
|
实际上 this 也可以看作是在调用时被确认的词法环境,普通函数被调用时会将 this 指向调用者压入执行上下文栈,但箭头函数不会创建新的词法环境,因此箭头函数中的 this 将从词法环境中查找并继承(复用)其定义时外部函数的 this。 |
|
|
|
实际上 this 也可以看作是在调用时被确认的词法环境,普通函数被调用时会将 this 指向调用者压入执行上下文栈,但箭头函数不会创建新的词法环境,因此箭头函数中的 this 将从词法环境中查找并继承(复用)其定义时外部函数的 this。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
JavaScript 提供了可以操作 this 的内置函数,如 Function.prototype.call 和 Function.prototype.apply,它们可以指定函数调用时传入的 this,除此之外还有 Function.prototype.bind,它可以返回一个更改了 this 的函数,它们甚至可以应用在箭头函数中,但是它并不会修改 this,仅仅实现了传参的能力。 |
|
|
|
|
|
|
|
|
|
|
|
## 上下文栈 |
|
|
|
## 上下文栈 |
|
|
|
|
|
|
|
|
|
|
|
>JavaScript 引擎并非一行一行分析执行代码,而是一段一段的分析执行,当执行一段代码的时候会进行一些准备工作 |
|
|
|
>JavaScript 引擎并非一行一行分析执行代码,而是一段一段的分析执行,当执行一段代码的时候会进行一些准备工作 |
|
|
|