我有一个无法替换的现有对象,但是我想通过给它提供多种新方法来调整其功能。这些是在类中定义的。因此,我想将此对象的原型设置为给定的类。我尝试了Object.setPrototypeOf(obj, clazz)
,但这似乎不起作用。我最终得到的结果如下:
function _setClassOf(obj, clazz) {
const fooInstance = new clazz();
Object.setPrototypeOf(obj, Object.getPrototypeOf(fooInstance));
}
不好的是,给定类的构造函数可能会有副作用,我不想在这种情况下执行。
是否有更好的方法来设置现有对象的类?
setPrototypeOf
是更改现有对象实例原型的唯一方法。重置__proto__
也可以,但是不建议使用。