为了账号安全,请及时绑定邮箱和手机立即绑定

set和get方法定义的名字和属性名是不不能相同?

我将set age()和属性age:null设置为同名,结果报错:Maximum call stack size exceeded,只要改成不同名就ok,请问这是什么原因?

var man = {
     	name:"nrt",
     	sex:"female",
     	age:null,
     	get age(){
     		if(this.age == undefined)
     		{
     			return new Date().getFullYear() - 1995;
     		}
     		else
     		{
     			return this.age;
     		}
     		
     	},
		set age(val){
	     		val = +val //转换为数值类型
	     		if(!isNaN(val) && val > 0 && val < 150)
	     		{
	     			this.age = +val;
	     		}
	     		else
	     		{
	     			console.log("输入非法");
	     		}
	     	}
     }

     console.log(man.age);
     man.age = 30;
     console.log(man.age);


正在回答

1 回答

举报

0/150
提交
取消

set和get方法定义的名字和属性名是不不能相同?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信