게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
Javascript Object.defineProperties() 질문
게시물ID : programmer_18815짧은주소 복사하기
작성자 : 해질녘이내
추천 : 0
조회수 : 220회
댓글수 : 3개
등록시간 : 2016/10/25 10:54:47
옵션
  • 본인삭제금지
먼저 아래와 같은 소스코드 Object.defineProperty()로
book 객체의 _year 접근자 프로퍼티를 고치면 edition 데이터 프로퍼티까지 바뀌는 것을 확인했습니다.

var book = {
_year:2004,
edition:1
};

Object.defineProperty(book, "year", {
get:function(){
return this._year;
},
set:function(newValue){
if(newValue>2004){
this._year=newValue;
this.edition+=newValue-2004;
}
}
});

alert(book.year.toString() + ", " + book.edition.toString());
book.year=2005;
alert(book.year.toString() + ", " + book.edition.toString());




그 다음 예제로 나온 것이 Object.defineProperties()입니다만, 전혀 동작하질 않습니다.
에러가 나는것도 아니고 책에 있는 그대로며, 책에서는 위 소스코드와 동일하게 작동한다고 나와있는데도 말입니다.
var book = {};

Object.defineProperties(book, {
_year:{
value:2004
},
edition:{
value:1
},
year:{
get:function(){
return this._year;
},
set:function(newValue){
if(newValue>2004){
this._year=newValue;
this.edition+=newValue-2004;
}
}
}
});

alert(book.year.toString() + ", " + book.edition.toString());
book.year = 2005;
alert(book.year.toString() + ", " + book.edition.toString());

문제가 뭘까요? ㅠㅠ
혹시 아시는 분 계시다면 알려주시면 감사하겠습니다.

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호