延長比方說我有這樣的:的JavaScript構造
function Foo(){
this.name = "fooos";
};
現在後面的腳本我有Foo
參考,什麼時候實例化將屬性添加到富。我可以做這樣的事情:
Foo.prototype.myProp = 3;
foo = new Foo();
expect(foo).to.have.property('name');
expect(foo).to.have.property('myProp');
這個偉大的工程,直到我需要一個對象附加到原型,像這樣:
Foo.prototype.myProp = { bar : 3 };
的問題是,現在情況將在bar
共享狀態(如`酒吧只是一個參考):
foo = new Foo();
foo2 = new Foo();
foo.myProp.bar = 5;
expect(foo2.myProp.bar).to.equal(5);
這是不可取的。但是,如果該對象添加到構造函數中,則實例不會共享狀態。
有沒有辦法解決這個問題?我無權訪問構造函數來操作它。我需要將一個對象附加到原型中的實例。
我知道。它不是我想要的。 – Fresheyeball
這是不是你想要的?從你的問題來看,這似乎是*你想要的。 – Oswald
如果腳本稍後會創建另一個'Foo'的實例,它將不會附加'myProp'。我希望它是構造函數的一部分。 – Fresheyeball