【发布时间】:2017-08-06 04:26:42
【问题描述】:
我有一个关于 JavaScript 的问题。当我声明新变量并为其分配新的类实例时,如果抛出错误,变量将变得完全无法使用。
下面的代码应该会报错
class MyClass {
constructor (config) {
this.someProperty = config.someProperty || '';
}
}
let myClassInstance = new MyClass();
如果我试图给它赋值,JavaScript 会抛出一个错误。
myClassInstance = '123'
Uncaught ReferenceError: myClassInstance is not defined
然后我尝试定义变量
let myClassInstance = '123'
未捕获的 SyntaxError:标识符“myClassInstance”已被声明
变量也不能被删除。我们能解决这个问题吗?我只是好奇,当然我会处理将 undefined 作为配置传递给构造函数。
编辑:我也尝试使用 var,然后我可以重用 myClassInstance。我想知道为什么如果我使用 let 那个变量不能被删除、声明或新值不能被重新分配。
编辑 2:我可以处理传递未定义或传递空对象。只是好奇在 JS 控制台中使用该变量会发生什么,如果您一次粘贴所有内容,代码也不会执行
【问题讨论】:
-
尝试使用 var 而不是 let。
-
没用,我试过了
-
向我们展示更多代码。我很确定,问题一定是范围
-
但是,如果我使用 var 分配类的新实例,那么我可以重用该变量,我想知道 let 会发生什么
-
@Kenny 只需将代码粘贴到 chrome 调试或类似的东西,然后你就可以明白我的意思了
标签: javascript class variables ecmascript-6 let