var Man=function(){
};
Man.prototype.attr=function(attr,val){
if(val){
this[attr]=val;
}
else{
return this[attr];
}
}
上面是我的代码,下面是调用代码。
在调用的时候,有下面两种属性赋值方案:
var me =new Man();
//方案一:
me.attr("fullname", "小明");//方案二:
me.fullname = "废柴";
console.info("我的名字是:" + me.attr("fullname"));
/*------[期望的执行结果]------
我的名字是:小明
------------------*/
按目前的代码最后输出的是
/*------[执行结果]------
我的名字是:废柴
------------------*/
也就是说第二种方案赋值把第一种方案赋的值修改了,请问要如何修改我的代码呢?
2 回答
交互式爱情
TA贡献1712条经验 获得超3个赞
方案一(推荐):
function Man() { this.dictionary = {}; } Man.prototype.attr = function(attr, val) { if(arguments.length > 1) { this.dictionary[attr] = val; } else { return this.dictionary[attr]; } };
方案二:
function Man() { var fullname; this.attr = function(attr, val) { if(attr === 'fullname') { if(arguments.length > 1) { fullname = val; } else { return fullname; } } }; }
添加回答
举报
0/150
提交
取消