javascript - 在对象初始化上使用 Object.setPrototypeOf() 会影响性能吗?
问题描述
我有一个使用自定义泛型类的应用程序,它始终具有属性type
,content
但可以表示各种不同的内容类型,并且必须为每种类型定义泛型方法,例如getContent
,setContent
等。为此,我定义了泛型类在一个文件中:
function Block(type) {
this.type = type;
this.content = "";
switch(this.type){
case "text":
Object.setPrototypeOf(this, TextBlock);
break;
case "picture":
Object.setPrototypeOf(this, PictureBlock);
break
}
}
以及各自文件中的相应原型,如下所示:
// textblock.prototype.js
TextBlock = {
createLine() {
//
},
setContent() {
//
},
//etc
}
当使用类型、内容和原型方法创建新块时new Block("text");
,将启动。这些原型方法只会被设置一次,Object.setPrototypeOf()
并且在整个代码执行过程中不会被更改或重置。
我的问题是:Object.setPrototypeOf()
以这种方式使用会显着降低性能吗?MDN 在他们的页面上有一条警告说,使用这种方法可能会出现严重的性能问题,但我想知道是否有更了解该主题的人可以谈论何时适合使用这种方法。毕竟是标准。
解决方案
推荐阅读
- sql - 索引提示中指定的 Oracle 索引无效
- r - 将按钮放在闪亮仪表板的标题中时标题样式不起作用
- sparql - SPARQL 中用于操作 IRI 的函数?
- javascript - 从另一个页面链接到手风琴的一部分后滚动
- get - 如何通过按 Enter 键获取 SlickGrid 中的行号 - 已解决
- multithreading - 带有 Rust `Sender` 和 Rayon 的 `for_each_with()` 的嵌套循环
- regex - 如何使用正则表达式在提取的结果中包含换行符
- c# - Unity 说 Audioclip 为空
- ruby - 从哈希数组返回哈希值的Ruby问题
- reactjs - NextJS if 语句包装了一个 .map