일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- springboot
- 보안취약점
- 리액트
- Vue
- jdk
- Spring
- sql
- java
- table
- mssql
- 스프링
- 자바
- Intellij
- React
- javascript
- 컴포넌트
- 개발
- reactjs
- 스프링부트
- 데이터베이스
- EXTJS
- GIT
- crud
- DATABASE
- 자바스크립트
- restapi
- 쿼리
- JS
- 개발공부
- component
- Today
- Total
준준의 기록일지
[ExtJS] 클래스 정의 본문
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
ExtJS는 방대한 라이브러리를 클래스로 만들어 관리하고 있다.
클래스 정의 방법 : Ext.define문을 이용해 정의한다. (마치 객체지향과 같이)
- Ext.define ('클래스명', {...});
정의된 클래스를 생성하기 위해서는 Ext.create문을 사용한다.
- Ext.create로 Ext.define으로 정의된 객체를 생성한다.
- Ext.create ('정의된 클래스', {...});
이후 xtype:앨리어스명'과 같이 앨리어스(alias)명을 사용할 경우 Ext.create와 동일하게 동작한다.
예시
Motor라는 클래스를 정의해보자.
Ext.define('Motor', {...});
Motor클래스는 일반속성과 config 속성을 가진다.
- config 속성은 설정과 같은 속성으로 클래스 생성 시 속성으로 인식된다.
- 이름이 부여될 경우 -> config : { name : null }
* config에 속성을 설정할 경우 해당 속성은 자동으로 get, set 접두어를 붙여 메소드로 사용할 수 있다.
- this.getName(), this.setName('설정값')
클래스가 정의될 때 생성자를 정의할 수 있다.
생성자 함수는 처음 클래스가 생성될 때 자동으로 반영하기 위해 constructor라는 생성자를 추가한다.
constructor 생성자 안에 config속성을 반영하기 위해 this.initConfig(config)를 호출한다.
constructor : function (config) {
this.initConfig(config)
}
위 코드는 클래스 생성 시 정의한 속성을 그대로 지정하여 사용할 수 있도록 처리한다. -> 클래스 생성시 정의한 속성들도 자동으로 처리된다.
클래스에 필요한 동작이나 연산등은 메소드를 정의하여 사용할 수 있다.
- run : function() {...}
예제 2.
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
|
Ext.onReady(function(){ //Ext.onReady() : Html 화면의 일부로 사용하는 방법.
Ext.define('Motor', {
config:{
name:null
}
},
//만약 생성자를 생성하지 않으면 실행결과에 Bus와 Taxi는 출력되지 않으며 this.setName을 별도로 호출하여 처리해야 한다. constructor:function(config) {
this.initConfig(config);
},
run:function(){
document.write(this.getName() + 'running<br>');
},
speed:function(){
document.write(this.getName() +'normal speed <br>');
}
});
var bus = Ext.create('Motor', { //정의된 클래스를 create로 가져온다.(마치 객체 생성)
name:'Bus'
});
bus.run(); //override와 같이 함수를 사용할 수 있다.
bus.speed();
var taxi = Ext.create('Motor', {
name:'Taxi'
});
taxi.run();
taxi.speed();
})
|
cs |
이 외에 extend:'상속받을 클래스'를 통해, 여러 함수를 상속받아올 수 있다.
1
2
3
|
Ext.define('Transformer', {
extend:'Motor'
});
|
cs |
감사합니다.
출처 : 최상의 웹애플리케이션 개발을 위한 Ext JS 6 프로그래밍 저자 : 이병옥, 조만영, / 클래스 정의 및 상속.
'ExtJS' 카테고리의 다른 글
[ExtJS] 탭패널 (closable / tabPosition / disabled) (0) | 2021.01.13 |
---|---|
[ExtJS] 페이지 refresh (0) | 2020.12.04 |
[ExtJS] fieldset label, checkboxtoggle is not visible (0) | 2020.12.02 |
[ExtJS] getComp (0) | 2020.10.16 |
[ExtJS] DB값에 따른 item hidden 설정 (0) | 2020.09.04 |