<script>
function wandiannao(name,age,number)
{
this.name=name;
this.age=age;
this.number=number;
this.look=function()
{
alert("看电视");
}
wandiannao.prototype.aaa={class:"一班"};
}
wandiannao.prototype.play=function()
{
alert("玩电脑");
}
var b=new wandiannao("yangcai",22,20102110130111);
var c=new wandiannao("liutian",20,20102110130203);
alert(b.aaa.class);
alert(b.aaa.class="二班");
alert(b.aaa.class);
alert(c.aaa.class);
</script>
怎么输出的是:一班――――>二班――――>二班――――>二班
我自己认为是要输出:一班――――>二班――――>二班――――>一班
alert(b.aaa.class);
alert(b.aaa.class="二班");//这里只是b的那个共享属性改变了,为什么
alert(b.aaa.class);
alert(c.aaa.class); 这里c的那个共享属性也改变了呀!!!!!!我不懂!!求高手指点。。。。
------解决方案--------------------
原型属性是共享的
- JScript code
<script> function Person(){} Person.prototype.friends = ['tom','jack']; var person1 = new Person(); var person2 = new Person(); person1.friends.push('rose'); alert(person1.friends);//tom,jack,rose alert(person2.friends);//tom,jack,rose </script>
------解决方案--------------------
不是复制的,你改成这个样子,就是你要的了
- JScript code
function wandiannao(name,age,number){ this.name=name; this.age=age; this.number=number; this.look=function(){ alert("看电视"); } this.aaa={class:"一班"}; }