在对象初始化上使用Object.setPrototypeOf()是否会影响性能?

时间:2018-07-12 01:39:07

标签: javascript performance

我有一个使用自定义定义的通用类的应用程序,该类始终具有属性typecontent,但是可以表示各种不同的内容类型,并且必须为每种类型定义通用方法,例如{ {1}},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()是否会大大降低性能? MDN has a warning on their page saying that using this method could have severe performance issues,但我想知道是否有任何对此主题更有知识的人能说出何时适当使用此方法。毕竟这是一个标准。

0 个答案:

没有答案