JavaScript中的解构和初始化
在JavaScript中初始化是如何工作的?我在下面的代码中发现一个错误,在初始化之前无法访问JavaScript中的解构和初始化,javascript,javascript-objects,destructuring,Javascript,Javascript Objects,Destructuring,在JavaScript中初始化是如何工作的?我在下面的代码中发现一个错误,在初始化之前无法访问obj 设a=7; 设b=10; 常量obj={a:23,b:35,c:70} ({a,b}=obj); 控制台日志(a,b)这是因为您依赖于自动分号插入,并且在const obj…行之后没有添加自动分号。如果没有一个表达式,则该行和下面的一行将被视为一个表达式,它在初始化之前确实尝试访问obj: const obj = { a:23, b:35, c:70 }({a, b} = obj); 对于解
obj
设a=7;
设b=10;
常量obj={a:23,b:35,c:70}
({a,b}=obj);
控制台日志(a,b)代码>这是因为您依赖于自动分号插入,并且在const obj…
行之后没有添加自动分号。如果没有一个表达式,则该行和下面的一行将被视为一个表达式,它在初始化之前确实尝试访问obj
:
const obj = { a:23, b:35, c:70 }({a, b} = obj);
对于解析器来说,这看起来像一个函数调用。如果您没有尝试访问解析器认为是参数列表中的obj
,那么当它调用对象时,它就会失败,因为该对象是不可调用的
您需要一个显式分号来分隔语句:
设a=7;
设b=10;
const obj={a:23,b:35,c:70};// 这是因为您依赖于自动分号插入,并且在const obj…
行之后没有添加自动分号。如果没有一个表达式,则该行和下面的一行将被视为一个表达式,它在初始化之前确实尝试访问obj
:
const obj = { a:23, b:35, c:70 }({a, b} = obj);
对于解析器来说,这看起来像一个函数调用。如果您没有尝试访问解析器认为是参数列表中的obj
,那么当它调用对象时,它就会失败,因为该对象是不可调用的
您需要一个显式分号来分隔语句:
设a=7;
设b=10;
const obj={a:23,b:35,c:70};// 在}
设a=7;
设b=10;
const obj={a:23,b:35,c:70};
({a,b}=obj);
控制台日志(a,b)代码>在}
设a=7;
设b=10;
const obj={a:23,b:35,c:70};
({a,b}=obj);
控制台日志(a,b)代码>常数{a,b}=obj@Mellet-OP似乎想更新现有变量。@T.J.Crowder啊,是的。对不起;)常数{a,b}=obj@Mellet-OP似乎想更新现有变量。@T.J.Crowder啊,是的。对不起;)T.J.克劳德非常感谢它的成功。我依赖ASI,所以我不知道它是怎么错过的。克劳德非常感谢它的成功。我依赖ASI,所以我不知道它是怎么错过的。