JavaScript setter가 참조에서 내부 값을 업데이트하지만 반환 값이 올바르지 않습니다.Javascript setter가 유효성 검사없이 값을 반환합니다.
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); –