1
0
Fork 0
Browse Source

vault backup: 2022-05-16 18:01:39

master
YuJian 3 years ago
parent
commit
6b7278e9fb
  1. 6
      深入探索 JavaScript/JavaScript 执行.md

6
深入探索 JavaScript/JavaScript 执行.md

@ -45,4 +45,8 @@ o.showThis(); // o
如果将例子中的 showThis 函数改为箭头函数,那么结果会发生变化,这是因为箭头函数并不会产生新的执行上下文,其 this 始终与外层函数保持一致。 如果将例子中的 showThis 函数改为箭头函数,那么结果会发生变化,这是因为箭头函数并不会产生新的执行上下文,其 this 始终与外层函数保持一致。
如果将例子中的 showThis 函数改写为类中的方法,那么直接调用 showThis 方法的 this 的结果也会不同,这是因为 JavaScript 的 Class 被设计成了默认在严格模式下(use strict)执行,而严格模式下 this 指向会发生一些改变。 如果将例子中的 showThis 函数改写为类中的方法,那么直接调用 showThis 方法的 this 的结果也会不同,这是因为 JavaScript 的 Class 被设计成了默认在严格模式下(use strict)执行,而严格模式下 this 指向会发生一些改变。
函数能够引用定义时的变量,函数也能记住定义时的 this,因此,函数内部必然有一个机制来保存这些信息,这个用来保存定义时上下文的机制就是私有属性 \[\[Environment\]\]。
在函数定义时,会保存定义时的上下文为函数的 \[\[Environment\]\],而在函数执行时,会创建一条新的执行环境记录,也就是函数执行时的上下文被设置为函数的 \[\[Environment\]\],这个动作就是切换shang'xia'w
Loading…
Cancel
Save