如何将 getter 绑定到具有布尔值评估的函数?
How to have a getter bound to a function with boolean evaluation?
我想有条件地访问对象的属性,但我的代码总是 returns 100
for obj.stats.speed
for isCar = true
and isCar = false
。我究竟做错了什么?谢谢
var isCar = false;
var obj = {
car : {
speed: 100,
size: 1000
},
bike: {
speed: 10,
size: 20
}
};
Object.defineProperty(obj, "stats", { get: function () {
if(isCar) {
return car;
} else {
return bike;
}
} });
console.log(obj.stats.speed); //returns 100 instead of 10
只需更改您的 return
语句值。
var isCar = false;
var obj = {
car : {
speed: 100,
size: 1000
},
bike: {
speed: 10,
size: 20
}
};
Object.defineProperty(obj, "stats",{ get: function() {
if(isCar){
return obj.car; //changed from car to obj.car
}else{
return obj.bike; //changed from bike to obj.bike
}
}
});
console.log(obj.stats.speed);
我想有条件地访问对象的属性,但我的代码总是 returns 100
for obj.stats.speed
for isCar = true
and isCar = false
。我究竟做错了什么?谢谢
var isCar = false;
var obj = {
car : {
speed: 100,
size: 1000
},
bike: {
speed: 10,
size: 20
}
};
Object.defineProperty(obj, "stats", { get: function () {
if(isCar) {
return car;
} else {
return bike;
}
} });
console.log(obj.stats.speed); //returns 100 instead of 10
只需更改您的 return
语句值。
var isCar = false;
var obj = {
car : {
speed: 100,
size: 1000
},
bike: {
speed: 10,
size: 20
}
};
Object.defineProperty(obj, "stats",{ get: function() {
if(isCar){
return obj.car; //changed from car to obj.car
}else{
return obj.bike; //changed from bike to obj.bike
}
}
});
console.log(obj.stats.speed);