下面的代码执行一个无限循环(打印一次getter1
,然后打印getter2
直到停止):
var person1 = {
_age: 42,
get age() {
console.log("getter1");
return this._age;
}
};
Object.defineProperty(person1, "_age", {
get: function() {
console.log("getter2");
return this._age;
}
});
console.log(person1.age); // true
是什么原因?(注意:我知道我声明了两个不同的getter)。
发布于 2016-11-05 23:00:17
每次从getter返回值时,都会触发另一个getter。
发布于 2016-11-05 23:00:25
您的第一个getter请求this._get
--这会触发第二个getter,它请求this._get
,它会触发第二个getter,它会请求this._get
,它会触发.你说对了。
https://stackoverflow.com/questions/40444138
复制相似问题