设置现有对象的类别

问题描述 投票:0回答:1

我有一个无法替换的现有对象,但是我想通过给它提供多种新方法来调整其功能。这些是在类中定义的。因此,我想将此对象的原型设置为给定的类。我尝试了Object.setPrototypeOf(obj, clazz),但这似乎不起作用。我最终得到的结果如下:

function _setClassOf(obj, clazz) {
    const fooInstance = new clazz();
    Object.setPrototypeOf(obj, Object.getPrototypeOf(fooInstance));
}

不好的是,给定类的构造函数可能会有副作用,我不想在这种情况下执行。

是否有更好的方法来设置现有对象的类?

javascript class prototype prototype-chain
1个回答
0
投票

setPrototypeOf是更改现有对象实例原型的唯一方法。重置__proto__也可以,但是不建议使用。

© www.soinside.com 2019 - 2024. All rights reserved.