Skip to content

Commit a4d4c50

Browse files
lihan178lihan13
and
lihan13
authored
fix: 文案重复 (#1168)
Co-authored-by: lihan13 <[email protected]>
1 parent 49cfc5c commit a4d4c50

File tree

1 file changed

+1
-1
lines changed
  • 1-js/06-advanced-functions/07-new-function

1 file changed

+1
-1
lines changed

1-js/06-advanced-functions/07-new-function/article.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ getFunc()(); // *!*"test"*/!*,从 getFunc 的词法环境中获取的
9292

9393
问题在于,在将 JavaScript 发布到生产环境之前,需要使用 **压缩程序(minifier)** 对其进行压缩 —— 一个特殊的程序,通过删除多余的注释和空格等压缩代码 —— 更重要的是,将局部变量命名为较短的变量。
9494

95-
例如,如果一个函数有 `let userName`,压缩程序会把它替换为 `let a`(如果 a 已被占用了,那就使用其他字符),剩余的局部变量也会被进行类似的替换。一般来说这样的替换是安全的,毕竟这些变量是函数内的局部变量,函数外的任何东西都无法访问它。在函数内部,压缩程序会替换所有使用了使用了这些变量的代码。压缩程序很聪明,它会分析代码的结构,而不是呆板地查找然后替换,因此它不会“破坏”你的程序。
95+
例如,如果一个函数有 `let userName`,压缩程序会把它替换为 `let a`(如果 a 已被占用了,那就使用其他字符),剩余的局部变量也会被进行类似的替换。一般来说这样的替换是安全的,毕竟这些变量是函数内的局部变量,函数外的任何东西都无法访问它。在函数内部,压缩程序会替换所有使用了这些变量的代码。压缩程序很聪明,它会分析代码的结构,而不是呆板地查找然后替换,因此它不会“破坏”你的程序。
9696

9797
但是在这种情况下,如果使 `new Function` 可以访问自身函数以外的变量,它也很有可能无法找到重命名的 `userName`,这是因为新函数的创建发生在代码压缩以后,变量名已经被替换了。
9898

0 commit comments

Comments
 (0)