mem*_*eme 2 javascript oop class object
在尝试找到一种在 JS 中使用嵌套类的方法时,我想到了这样的事情:
class Character {
constructor() {
this.Info= class I {
constructor(name,value) {
this.name=name;
this.value=value;
}
};
}
bar () {
var trial = new this.Info("Goofy", 2);
alert(trial.name);
}
}
var test = new Character();
test.bar();
Run Code Online (Sandbox Code Playgroud)
这似乎有效。但是,我担心这可能会为每次调用创建一个新的函数对象new,因为我在构造函数中定义了该类(在每次new调用时执行)。有没有更有效的方法来做到这一点?
这个问题并没有解决我的问题,因为作者只是想知道如何嵌套class; 我已经能够做到这一点,但我想知道是否有更有效的方法。
在 React、Angular 或仅使用 babel 中使用静态属性,因为目前并非所有浏览器都实现了直接静态类属性。
class Character {
static Info = class I {
constructor(name) { this.name=name; }
}
bar () {
return new Character.Info("Goofy");
}
}
const test = new Character();
console.log(test.bar());
Run Code Online (Sandbox Code Playgroud)
以旧方式使用静态属性——目前适用于所有浏览器。
class Character {
bar () { return new Character.Info("Goofy"); }
}
Character.Info = class I {
constructor(name) { this.name=name; }
}
const test = new Character();
console.log(test.bar());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4756 次 |
| 最近记录: |