일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 챗지피티
- 워드프레스
- php
- 그누보드
- cocos2d-x
- Javascript
- 아두이노 강좌
- 파싱
- ChatGPT
- 아두이노 기초강좌
- Php공부
- flex
- 아두이노
- 자바스크립트
- 무료일러스트
- c#
- Python
- vps
- 프로그램
- 자동블로그
- vultr
- 웹
- 자동포스팅
- Ajax
- 파이썬
- 쿠팡파트너스
- HTML
- 아두이노 초보
- 자동글쓰기
- 가상서버
- Today
- Total
플밍
클로저를 이용한 private 와 상속의 구현 예제 본문
자바스크립트에서 클로저를 이용하면 private 를 구현할 수 가 있다.
더불어 자바스크립트의 헤깔리는 this를 사용하지 않아도 된다.
요즘 대형프로젝트에서 이런식으로 많이 구현한다는 소문이..
#ads_1
<script type="text/javascript">
<!--
//- Animal ----------------------------------
var Animal = function(){
//private member
var name = '동물';
//public
return {
//public member
base:'생물',
//public method
getName:function(){
return name;
},
setName:function(n){
name = n;
},
run:function(){
return name + '가 달린다';
}
}
}
//- Lion ----------------------------------
//Lion extends Animal
var Lion = function(){
var ani = new Animal();
ani.setName('사자');
//Animal에 새로운 메서드를 확장한다
ani.hunt = function(){
return ani.getName() + '가 사냥을 한다';
}
//실제 리턴되는 값은 Aniaml 이기 때문에 Lion 은 Animal을 상속한 효과를 낼 수 있다.
return ani;
}
//- Eagle ----------------------------------
//Eagle extends Animal
var Eagle = function(){
var ani = new Animal();
ani.setName('독수리');
//run 메서드 오버라이드
ani.run = function(){
return ani.getName() + '가 하늘을 난다';
}
return ani;
}
///////// 실행 /////////////
var l = Lion();
alert( l.run() ); //사자가 달린다
alert( l.hunt() ); //사자가 사냥을 한다
alert( l.name ); //접근이 안된다(private)
alert( l.base ); //동물(public)
var e = Eagle();
alert( e.run() ); //독수리가 난다
//-->
</script>
#ads_2