why?为何会这样? 原型(prototype)上的成员是共享的,对象成员a1访问过程是:查看对象自身有无a1,若有,则访问该成员,若无,则访问原型上a1成员,若仍然无,则访问原型的原型(即原型链机制) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 但是a1自身给data赋值后,会导致新new出来的a2的data和a1的data相同,且属性b不受影响,即AAA=function(){}AAA.prototype.data={};AAA.prototype.b="b1";var a1=new AAA()a1.data.a1="1";a1.data.a2="2";a1.b="bb1";console.log(a1.data)//{a1:1,a2:2}console.log(a1.b)//bb1var a2=new AAA(); console.log(a2.data)//{a1:1,a2:2}console.log(a2.b)//b1 Javascript规定,每一个构造函数都有一个prototype属性,指向另一个对象。这个对象的所有属性和方法,都会被构造函数 的实例继承。a1和a2的data属性,实际都是指向同一个对象。AAA的prototype里的属性和方法被AAA的所有实例共享。 AAA=function(){}AAA.prototype.data={};AAA.prototype.b="b1"; var a1=new AAA()a1.data.a1="1";a1.data.a2="2";a1.b="bb1";console.log(a1.data)//{a1:1,a2:2}console.log(a1.b)//bb1 var a2=new AAA(); console.log(a2.data)//{a1:1,a2:2}console.log(a2.b)//b1那为何属性b不受影响 原型对象(prototype)中的属性是所有实例对象公有的公共属性由于JavaScript中继承只发生在“获取”属性的值时,对于属性的值是String,Number和Boolean这些数据本身不能被修改的类型时没有什么影响。但是Array和Object类型就会有问题: 关于javascript接收数组问题 利用jquery向div中添加<script>标签 html和js文件代码不统一时出错? 请教个关于函数调用的问题:) 二个超级简单问题,即给分 如何得到页面的宽度和高度,不是IE的宽度和高度? 怎么把焦点设到一个连接上? to 孟子E章和各位高手 JS实现从服务器上下载一个word文件到本地 Jquery Mobile date-role=page 问题 如何能够让on绑定返回指定数据 求一个正则表达式
AAA.prototype.data={};
AAA.prototype.b="b1";var a1=new AAA()
a1.data.a1="1";
a1.data.a2="2";
a1.b="bb1";
console.log(a1.data)//{a1:1,a2:2}
console.log(a1.b)//bb1var a2=new AAA();
console.log(a2.data)//{a1:1,a2:2}
console.log(a2.b)//b1
a1和a2的data属性,实际都是指向同一个对象。AAA的prototype里的属性和方法被AAA的所有实例共享。
AAA.prototype.data={};
AAA.prototype.b="b1";
var a1=new AAA()
a1.data.a1="1";
a1.data.a2="2";
a1.b="bb1";
console.log(a1.data)//{a1:1,a2:2}
console.log(a1.b)//bb1
var a2=new AAA();
console.log(a2.data)//{a1:1,a2:2}
console.log(a2.b)//b1那为何属性b不受影响