[求助]JavaScript构造函数原型对象中属性的修改问题 本帖最后由 wang_zhixing 于 2012-03-07 22:48:11 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //首先为什么出现"something" Cons.prototype.info="changed!"; //开始时,你修改了原型属性的info值,但你实例化后(var inst=new Cons()),里面又有Cons.prototype.info="something";//所以值又值改了 所以值是"something" Cons.prototype.newInfo //可以在原型对象中建立新的属性:是可以的,,你可以创建n个属性 Cons.prototype.newInfo 和Cons.prototype.info 是不同的,但都属于Cons这个对象 阿斌哥说得有道理,其实这只是一个执行顺序的问题首先,JS解释器会提前处理函数和变量声明,此时已经创建了 inst 、 Cons 和 Cons.prototype接着开始执行代码,到 Cons.prototype.info="changed" 时为 Cons.prototype 添加了属性 info:"changed"然后遇到 new Cons() 开始执行函数,将函数内部为 prototype 赋的值放入 Cons.prototype 中由于发现 info 重名,所以原来的值被覆盖 info:"something" ,如果将 Cons.prototype.info="changed" 放在后面,则覆盖顺序刚好相反最后,将创建好的对象交给 inst JavaScript事件监听完整实例(含注释) 请大家支持一下我这只有10分的人吧,浮动广告问题!!!!! 请教一个问题~~ 望高手回答~~~~~~~ 如何用js控制按钮显示? 正则 问题 请问大家body中加入这些语句是什么意思? 在网页中如何实现时间的动态显示 网页前端选择一个本地文件,如何抓取其绝对路径。 JS中数据类型的转换一问 请问如何做出平面效果的<input type="checkbox">呀? 关于JS函数外的变量问题 如何用jquery控制展开小图标
所以值是"something"
Cons.prototype.newInfo //可以在原型对象中建立新的属性:是可以的,,你可以创建n个属性
阿斌哥说得有道理,其实这只是一个执行顺序的问题
首先,JS解释器会提前处理函数和变量声明,此时已经创建了 inst 、 Cons 和 Cons.prototype
接着开始执行代码,到 Cons.prototype.info="changed" 时为 Cons.prototype 添加了属性 info:"changed"
然后遇到 new Cons() 开始执行函数,将函数内部为 prototype 赋的值放入 Cons.prototype 中
由于发现 info 重名,所以原来的值被覆盖 info:"something" ,如果将 Cons.prototype.info="changed" 放在后面,则覆盖顺序刚好相反
最后,将创建好的对象交给 inst