Object.defineProperty 메서드를 사용하여 일부 getter 및 setter를 정의하는 javascript 객체를 가지고 놀고 있습니다.Object.defineProperty 및 반환 값
function User() {
var _username;
var _id;
Object.defineProperty(User, 'id', {
get: function() {
return _username;
}
});
Object.defineProperty(User, 'username', {
get: function() {
return _username;
},
set: function(username) {
this._username = username;
}
});
}
속성 (id) 중 하나에 대해서만 나는 getter 만 필요합니다. 원래 나는 오타가 있었는데 _username
의 값을 되 돌리는 중이었지만, 나는 위의 것이 작동하지 않는다는 것을 빨리 깨달았습니다. 그러나 호기심을 위해서, 나는 그것이 예상대로 작동하지 않는 이유를 이해하려고 노력하고 있습니다. 나는 다음과 같은 한 경우 :
var u = new User();
u.username = 'bob';
alert(u.username);
alert(u.id);
마지막 문은 undefined
대신 bob
경고 것입니다. 왜 그런가요? 그리고 다른 재산을 되 찾을 수있는 방법이 있습니까?
의
this
에 속성을 정의해야합니다. 'User.username'을 사용해보십시오. 그리고 생성자 함수를 변경하지 않도록 코드를 수정하십시오. – Bergi