man.age赋值为100后为什么输出的age也是100,val = +val是什么意思,不是等于val = val + val 吗

来源:4-4 [JavaScript]get/set方法

momoyy123

2016-04-27 10:33

var man = {

weibo:'@Bosn',

$age:null,

get age(){

if(this.$age== undefined){

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

}else{

return this.$age;

}

},

set age(val){

val = +val;

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

this.$age = +val;

}else{

throw new Error('Incorrect val =' + val);

}

}

}

console.log(man.age);


写回答 关注

3回答

  • 前端小蜗牛_
    2017-04-15 21:34:15

    这里的+号是一元操作符,同number转型函数

  • momoyy123
    2016-04-27 14:23:32

    +val 是弱转换,将val转换为数值类型,若转换不成数值则返回NaN, val += val  才是val = val + val

  • momoyy123
    2016-04-27 11:01:18

    $符合暗示这个属性时私有属性

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281102 学习 · 1020 问题

查看课程

相似问题