朋友们,路过来看看

为爱停留 2012-09-09 03:50:06
<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的那个共享属性也改变了呀!!!!!!我不懂!!求高手指点。。。。
...全文
147 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yamuyo 2012-09-09
  • 打赏
  • 举报
回复
因为wandiannao.prototype.aaa={class:"一班"};是对象,引用了
为爱停留 2012-09-09
  • 打赏
  • 举报
回复
上楼,谢谢了,你解除了我的疑问!!!!!!!!!!!
泡泡鱼_ 2012-09-09
  • 打赏
  • 举报
回复
既然是共享,那就是会被改变。除非你实例化在变更之后

alert(b.aaa.class="二班");
alert(b.aaa.class);
var c=new wandiannao("liutian",20,20102110130203);
alert(c.aaa.class);


另外,我能说一下咱能不用class这种保留字么?
为爱停留 2012-09-09
  • 打赏
  • 举报
回复
function wandiannao(name,age,number){
this.name=name;
this.age=age;
this.number=number;
this.look=function(){
alert("看电视");
}
this.aaa={class:"一班"};

}
我想要的是,那个class属性要共享,但不随以后对象的实例化改变而改变!!!!!!!!!!!!
泡泡鱼_ 2012-09-09
  • 打赏
  • 举报
回复
不是复制的,你改成这个样子,就是你要的了
    
function wandiannao(name,age,number){
this.name=name;
this.age=age;
this.number=number;
this.look=function(){
alert("看电视");
}
this.aaa={class:"一班"};

}
lidongmao00 2012-09-09
  • 打赏
  • 举报
回复
原型属性是共享的
  <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>

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧