兮兮酱
2017-06-23 15:46
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 ,
这一段
{ return new Date().getFullYear() - 1988; }
之后你没有写else的语句。
原因:在你设置了$age之后if判断时显示false,不执行上一段的命令,但也没有else的命令可以执行,所以默认会返回undefined。
JavaScript深入浅出
281102 学习 · 1020 问题
相似问题