求助...对象set get方法出现奇怪现象

Fulora 2013-03-28 01:26:28

<script>
function Person(){
var _name='_name'; //中间变量,私有变量,在alert中会显示undefined
this.name='name'; //保留return块,alert为undefined 若保留this块,显示name
/*
//return块
return {
getName:function() {
return _name;
},
setName:function(myName) {
_name=myName;
}
}
*/
/*
//this块
this.getName=function() {
return _name;
}
this.setName=function(myName) {
_name=myName;
}
*/
}
var person=new Person();
alert(person._name);
alert(person.name); //这个有问题,return块和this块对_name操作的不同,会影响到name的值,为什么
</script>

...全文
190 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Fulora 2013-03-28
  • 打赏
  • 举报
回复
2楼和4楼刚好回答得很好0w0
龙飞tgbmlp 2013-03-28
  • 打赏
  • 举报
回复
当new Person()是,返回了一个新的对象,就是return块内容,这是return块中没有那么属性,设置alert再person.name肯定是undefined
似梦飞花 2013-03-28
  • 打赏
  • 举报
回复
在构造函数里return 不是很明白你的意思
l676331991 2013-03-28
  • 打赏
  • 举报
回复
因为当用new操作符的时候,Person是忽略其返回值的。 var person = new Person(); 这是构造了一个Person,person指向构造器内部的this,而不是return返回的obj。

87,996

社区成员

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

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