至少如果您將一個非原始對象指定爲this.somevar
或prototype.somevar
,則存在差異。
嘗試運行此:
function Agent(bIsSecret)
{
if(bIsSecret)
this.isSecret=true;
this.isActive = true;
this.isMale = false;
this.myArray = new Array(1,2,3);
}
function Agent2(bIsSecret)
{
if(bIsSecret)
this.isSecret = true;
}
Agent2.prototype.isActive = true;
Agent2.prototype.isMale = true;
Agent2.prototype.myArray = new Array(1,2,3);
var agent_a = new Agent();
var agent_b = new Agent();
var agent2_a = new Agent2();
var agent2_b = new Agent2();
if (agent_a.myArray == agent_b.myArray)
alert('agent_a.myArray == agent_b.myArray');
else
alert('agent_a.myArray != agent_b.myArray');
if (agent2_a.myArray == agent2_b.myArray)
alert('agent2_a.myArray == agent2_b.myArray');
else
alert('agent2_a.myArray != agent2_b.myArray');
我曾嘗試: agent_a.myArray = agent_b.myArray」 agent2_a.myArray == agent2_b.myArray 因此,這表明,在使用「這個! 「每個對象都有自己的屬性,功能。但是當我使用原型時,它是共享的。這可能是一個問題,因爲當我更改一個對象上的數組時,它會在其他所有對象上進行更改。 :( – pencilCake
是的,類似的東西;) – Lukman