我对 JS 类相当陌生,并且主要从事后端工作。
我在玩新的 JS 类,所以我开始在这里查看示例:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes
我去了 chrome (chromium) 开发者工具控制台,我写了 Polygon 类:
class Polygon {
constructor(height, width) {
this.height = height;
this.width = width;
}
}
然后我想根据包含方法的示例重新定义类,所以我写道:
class Polygon {
constructor(height, width) {
this.height = height;
this.width = width;
}
get area() {
return this.calcArea();
}
calcArea() {
return this.height * this.width;
}
}
这会引发错误:
Uncaught SyntaxError: Identifier 'Polygon' has already been declared(…)
现在我知道 ES6 中有一个新的作用域,并且类会自动使用新的作用域等等……但实际上,我该如何重新定义我的类? :D
我经常写 Python,所以我习惯于重新定义我想要的一切。
最佳答案
没有一个答案在不更改原始代码的情况下提供解决方案......所以这里是精炼的解决方案。
如果在代码中你有这样的东西:
class Polygon {
constructor(height, width) {
this.height = height;
this.width = width;
}
}
那么这意味着你已经创建了一个
let
名为 Polygon
的变量.您不能重新声明 Polygon
,但您可以重新分配它。因此,如果您需要进行实验,例如JS 控制台只做:
Polygon = class {
//... new stuff here
}
这将替换原来的类,但不会违反
let
限制。您可以通过在控制台中粘贴以上代码来尝试此操作,然后尝试
new Polygon(1,2)
.
关于javascript - 如何在控制台中重新定义 JavaScript(不是 CSS)类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40471017/