一个访问其属性的有关问题,求解答
一个访问其属性的问题,求解答
第十二行“this._year = newValue;”报堆栈溢出错误,貌似是因为Object.defineProperty()的第二个参数"_year"跟book的属性"_year“同名就不行,求解答
------解决方案--------------------
defineProperty(book , "_year" , {中的_year会覆盖掉book对象中原来的同名属性_year
在set中对_year赋值就成了无穷递归调用,最终导致堆栈溢出
var book = {
_year : 2004,
edition : 1
};
Object.defineProperty(book , "_year" , {
get : function(){
return this._year;
},
set : function(newValue){
if(newValue > 2004){
this._year = newValue;
this.edition += newValue - 2004;
}
}
});
book._year = 2005;
alert(book._year);
alert(book.edition);
第十二行“this._year = newValue;”报堆栈溢出错误,貌似是因为Object.defineProperty()的第二个参数"_year"跟book的属性"_year“同名就不行,求解答
------解决方案--------------------
defineProperty(book , "_year" , {中的_year会覆盖掉book对象中原来的同名属性_year
在set中对_year赋值就成了无穷递归调用,最终导致堆栈溢出