问答详情
源自:4-4 [JavaScript]get/set方法

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 ,


提问者:兮兮酱 2017-06-23 15:46

个回答

  • 慕的地5531362
    2017-06-23 16:49:16
    已采纳

    这一段

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

    之后你没有写else的语句。

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