비 기본 객체를 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