From dc4b0aef0dd505eced6dd6e9c4cbfc6143d17f44 Mon Sep 17 00:00:00 2001 From: YuJian Date: Tue, 17 May 2022 11:56:20 +0800 Subject: [PATCH] vault backup: 2022-05-17 11:56:20 --- 深入探索 JavaScript/JavaScript 执行.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/深入探索 JavaScript/JavaScript 执行.md b/深入探索 JavaScript/JavaScript 执行.md index 4413c16..14a8e9d 100644 --- a/深入探索 JavaScript/JavaScript 执行.md +++ b/深入探索 JavaScript/JavaScript 执行.md @@ -56,6 +56,13 @@ this 是一个复杂的机制,JavaScript 标准定义了 \[\[ thisMode \]\] JavaScript 提供了可以操作 this 的内置函数,如 Function.prototype.call 和 Function.prototype.apply,它们可以指定函数调用时传入的 this,除此之外还有 Function.prototype.bind,它可以返回一个更改了 this 的函数,它们甚至可以应用在箭头函数中,但是它并不会修改 this,仅仅实现了传参的能力。 +Kyle Simpson 关于 this 的总结: +1. 如果由new调用 - 绑定到新创建的对象 +2. 如果由 call、apply 或 bind调用 - 绑定到指定的对象 +3. 如果由上下文对象调用 - 绑定到那个上下文对象 +4. 其他调用情况 - 严格模式下会绑定到 undefined,非严格模式绑定到全局对象 +5. 以上情况对于箭头函数都不适用,它会继承外层函数的 this 绑定 + ## 上下文栈 >JavaScript 引擎并非一行一行分析执行代码,而是一段一段的分析执行,当执行一段代码的时候会进行一些准备工作