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

set $age之后,运行man.age值为undefined


var man = {

name:'kkk',

weibo:'@Bosn',

$age:null,

get age(){

if( this.$age == undefined ){


return new Date().getFullYear() - 1988;

}

},

set age(val){

val = +val;

if( !isNaN(val) &&  val > 0 && val < 150){


this.$age = +val;

return this.$age;


}else{


console.log('Age can\'t be set to ' + val );

}

}

}

console.log( ' man.age =  '+ man.age); // 20 

man.$age = 100;

console.log( ' man.age2 =  '+ man.age); // undefined  这个我运行出来是undefined,老师的为啥是 100 ,


正在回答

1 回答

这一段

{
return new Date().getFullYear() - 1988;
}

之后你没有写else的语句。

原因:在你设置了$age之后if判断时显示false,不执行上一段的命令,但也没有else的命令可以执行,所以默认会返回undefined。

0 回复 有任何疑惑可以回复我~
#1

兮兮酱 提问者

非常感谢!
2017-06-23 回复 有任何疑惑可以回复我~
#2

兮兮酱 提问者

奥,明白了,如果是man.age = 100 去改变值, 会先执行set,然后在执行get。谢谢啦~~~
2017-06-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

set $age之后,运行man.age值为undefined

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