首页 > 解决方案 > 初始化前无法访问“z”

问题描述

var w = 1, z = 2;
function foo( x = w + 1, y = x + 1, z = z + 1 ) {
  console.log(x, y, z);
};
foo(); // ReferenceError: Cannot access 'z' before initialization

为什么z找不到z = 2,却能w找到w = 1

标签: javascript

解决方案


var w = 1, z = 2;
function foo( x = w + 1, y = x + 1, t = z + 1 ) {
  console.log(x, y, t);
};
foo(); 

尝试这个。您在开始时初始化 z,然后在函数声明中再次初始化它。

我已将z变量重命名为t.


推荐阅读