We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 49cfc5c commit a4d4c50Copy full SHA for a4d4c50
1-js/06-advanced-functions/07-new-function/article.md
@@ -92,7 +92,7 @@ getFunc()(); // *!*"test"*/!*,从 getFunc 的词法环境中获取的
92
93
问题在于,在将 JavaScript 发布到生产环境之前,需要使用 **压缩程序(minifier)** 对其进行压缩 —— 一个特殊的程序,通过删除多余的注释和空格等压缩代码 —— 更重要的是,将局部变量命名为较短的变量。
94
95
-例如,如果一个函数有 `let userName`,压缩程序会把它替换为 `let a`(如果 a 已被占用了,那就使用其他字符),剩余的局部变量也会被进行类似的替换。一般来说这样的替换是安全的,毕竟这些变量是函数内的局部变量,函数外的任何东西都无法访问它。在函数内部,压缩程序会替换所有使用了使用了这些变量的代码。压缩程序很聪明,它会分析代码的结构,而不是呆板地查找然后替换,因此它不会“破坏”你的程序。
+例如,如果一个函数有 `let userName`,压缩程序会把它替换为 `let a`(如果 a 已被占用了,那就使用其他字符),剩余的局部变量也会被进行类似的替换。一般来说这样的替换是安全的,毕竟这些变量是函数内的局部变量,函数外的任何东西都无法访问它。在函数内部,压缩程序会替换所有使用了这些变量的代码。压缩程序很聪明,它会分析代码的结构,而不是呆板地查找然后替换,因此它不会“破坏”你的程序。
96
97
但是在这种情况下,如果使 `new Function` 可以访问自身函数以外的变量,它也很有可能无法找到重命名的 `userName`,这是因为新函数的创建发生在代码压缩以后,变量名已经被替换了。
98
0 commit comments