diff --git a/docs/function.md b/docs/function.md index b27bf21..f5a7f02 100644 --- a/docs/function.md +++ b/docs/function.md @@ -1138,7 +1138,7 @@ factorial(5, 1) // 120 由此可见,“尾调用优化”对递归操作意义重大,所以一些函数式编程语言将其写入了语言规格。ES6也是如此,第一次明确规定,所有ECMAScript的实现,都必须部署“尾调用优化”。这就是说,在ES6中,只要使用尾递归,就不会发生栈溢出,相对节省内存。 -目前,只有开启严格模式,尾调用优化才会生效。 +注意,只有开启严格模式,尾调用优化才会生效。由于一旦启用尾调用优化,`func.arguments`和`func.caller`这两个函数内部对象就失去意义了,因为外层的帧会被整个替换掉,这两个对象包含的信息就会被移除,所以在严格模式下,这两个对象也是不可用的。 ### 递归函数的改写