JavaScript設置器更新引用的內部值,但返回值不正確。JavaScript設置器無需驗證就返回值
var Game =
{
get points() {
return this._points;
},
set points(x){
x = Math.min(x,25);
this._points = x;
return this._points;
}
};
Game.points = 10 ;
console.log(Game.points); // outputs 10
var updatedPoints = (Game.points = 60);
console.log(updatedPoints); // outputs 60
console.log(Game.points); // outputs 25
'updatedPoints'的預期值是25!
任何想法爲什麼會發生這種情況?你能否建議是否有辦法解決這個問題?
解決此問題的原因:爲了確保JS代碼按預期執行,可維護性!
@FelixKling人們會認爲updatedPoints的值是25? – sbr
是的,我現在明白你的問題。但是,不,分配表達式的結果是分配的值(即60)。 –
我會使用逗號運算符 - 它更短:P var updatedPoints =((Game.points = 60),Game.points); –