关于对象生成,原型链上的数据初始化问题

tmdwawa 2013-07-19 07:58:05
function a (k) {
if(k) this.g[0] = k;
}
a.prototype.g = [];
var c = new a('mmmm');
var k = new a('ssss');// this.g = 'sssss'
var w = new a();
alert(w.g);

g是不停的新生成的对象修改,最终c,k,w 的prototype.g的值 都为sssss

只有重新在a函数 里设置g this.g = [k];才可以。。


有没有办法即可以用prototype 设置公有变量( g ),又可以在生成对象时修改g
...全文
148 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ftiger 2013-07-19
  • 打赏
  • 举报
回复
术语不规范,猜测你想实现.g 初始值可以传入也可以使用默认值。


function a(k) {
	this.k= k || "我是默认值";
}

var b = new a("我是传入值");
var c = new a();
alert(b.k);
alert(c.k);
tmdwawa 2013-07-19
  • 打赏
  • 举报
回复
反正都是公有嘛。。只是为什么为prototype this可以调用,但是每个对象共享prototype的值呢。。。
阿鱼 2013-07-19
  • 打赏
  • 举报
回复
1.“有没有办法即可以用prototype 设置公有变量( g ),又可以在生成对象时修改g”话说你现在实现的就是这个功能~ 2.g是公有属性而不是公有变量。

87,992

社区成员

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

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