일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바스크립트
- Php공부
- 아두이노
- php
- flex
- cocos2d-x
- 파이썬
- 아두이노 초보
- 무료일러스트
- 쿠팡파트너스
- Python
- 그누보드
- Ajax
- vps
- 파싱
- 프로그램
- 자동글쓰기
- Javascript
- 자동포스팅
- 워드프레스
- ChatGPT
- HTML
- 아두이노 강좌
- vultr
- 자동블로그
- 웹
- 가상서버
- 챗지피티
- 아두이노 기초강좌
- c#
- 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