set和get方法定義的名字和屬性名是不不能相同?
我將set age()和屬性age:null設(shè)置為同名,結(jié)果報(bào)錯(cuò):Maximum call stack size exceeded,只要改成不同名就ok,請(qǐng)問這是什么原因?
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?//轉(zhuǎn)換為數(shù)值類型 ????? if(!isNaN(val)?&&?val?>?0?&&?val?<?150) ????? { ????? this.age?=?+val; ????? } ????? else ????? { ????? console.log("輸入非法"); ????? } ????? } ?????} ?????console.log(man.age); ?????man.age?=?30; ?????console.log(man.age);