设置内部原型

时间:2013-04-04 11:41:48

标签: javascript

有没有办法在不使用__proto__属性的情况下更改实例的原型?

我想出了这个:

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

但这仍然使用__proto__

2 个答案:

答案 0 :(得分:0)

一旦有了对象,就不能在不使用__proto__属性的情况下更改其[[Prototype]]链接。

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

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

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

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

答案 1 :(得分:0)

也许喜欢:

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

x = object(y);

取自Stoyan Stefanov的 JavaScript Patterns