正在设置内部原型

Setting internal prototype

本文关键字:原型 内部 设置      更新时间:2023-09-26

有没有任何可能的方法可以在不使用__proto__属性的情况下更改实例的原型?

我想出了这个:

x=new String();
y=new Array();
Object.setPrototypeOf(x,y.__proto__)

但这仍然使用CCD_ 2。

可能类似于:

function object(o) {
    function F() {}
    F.prototype = o;
    return new F();
}
x = object(y);

摘自Stoyan Stefanov 的JavaScript模式

一旦有了对象,如果不使用__proto__属性,就无法更改其[[Prototype]]链接。

从实用性的角度来看,你的例子没有意义。如果您想在另一个方法上使用StringArray的方法,只需调用它们并设置它们的ThisBinding,或者根据需要分配它们。

但是,可以创建新对象,它们的[[Prototype]]链接指向另一个对象。

var obj = Object.create(String.prototype);

这当然不会修改原始对象。