ext 중류의 계승
3911 단어 계승
this와 var의 문장은 이미 보냈는데, 여기는 단지 계승을 토론할 뿐이다.
1. 상속, 하위 클래스는 상위 클래스의 구조 함수를 호출한다
SubClass.spuperclass.constructor.call(this,config || {});
참고: SubClass는 supperclass 속성, SubClass를 등록합니다.superclass=SupperClass.prototype;
또한 Ext는 원형의supclass 속성을 추가하고 패키지를 사용하여this의 작용역을 변경합니다. Ext.extend에서
sb.superclass=spp;
sbp.superclass = sbp.supr = (function(){ return spp; });
이것.superclass().getXX.apply(this);
Ext 상속:
(1) 하위 클래스가 지정되지 않았습니다. 프로토타입 속성의constructor는 부모 클래스를 호출하는 구조 함수입니다.
원본:sb=overrides.constructor != oc ? overrides.constructor : function(){sp.apply(this, arguments);};
var myclass=Ext.extend(supclass, {/* 추가 방법 */})
(2)constructor 함수를 지정하여 하위 클래스를 완성하는 구조기
var myclass=Ext.extend(supclass, {constructor:function () {/* 서브클래스 구축 */},/* 추가 방법 */})
(3) 하위 클래스는 자신의 구축 함수를 채택한다
var myclass=function(config)
{myclass.superclass.constructor.call(this,this.meta);//파라미터를 부류 구축기에 전송
/* 기타 관련 처리 */
}
Ext.extend(myclass,supclass,{*일부 추가 방법});
2. 등록, 감청, 이벤트 실행
this.addEvents('nodeClick');//구조 함수 내에서 addEvents는 Ext 방법입니다.
this.initTreeEvent();//감청 방법.자기 실현
this.fireEvent('nodeClick',node.attributes);
addEvents : function(o){ var me = this; me.events = me.events || {}; if (typeof o == 'string') { var a = arguments, i = a.length; while(i--) { me.events[a[i]] = me.events[a[i]] || TRUE; } } else { Ext.applyIf(me.events, o); } },
fireEvent : function(){ var a = Array.prototype.slice.call(arguments, 0), ename = a[0].toLowerCase(), me = this, ret = TRUE, ce = me.events[ename], cc, q, c; if (me.eventsSuspended === TRUE) { if (q = me.eventQueue) { q.push(a); } } else if(typeof ce == 'object') { if (ce.bubble){ if(ce.fire.apply(ce, a.slice(1)) === FALSE) { return FALSE; } c = me.getBubbleTarget && me.getBubbleTarget(); if(c && c.enableBubble) { cc = c.events[ename]; if(!cc || typeof cc != 'object' || !cc.bubble) { c.enableBubble(ename); } return c.fireEvent.apply(c, a); } } else { a.shift(); ret = ce.fire.apply(ce, a); } } return ret; },
addListener : function(eventName, fn, scope, o){ var me = this, e, oe, isF, ce; if (typeof eventName == 'object') { o = eventName; for (e in o){ oe = o[e]; if (!me.filterOptRe.test(e)) { me.addListener(e, oe.fn || oe, oe.scope || o.scope, oe.fn ? oe : o); } } } else { eventName = eventName.toLowerCase(); ce = me.events[eventName] || TRUE; if (typeof ce == 'boolean') { me.events[eventName] = ce = new EXTUTIL.Event(me, eventName); } ce.addListener(fn, scope, typeof o == 'object' ? o : {}); } },
removeListener : function(eventName, fn, scope){ var ce = this.events[eventName.toLowerCase()]; if (typeof ce == 'object') { ce.removeListener(fn, scope); } },
3. 패키지 닫기
내부 함수는 외부 변수를 사용하고 외부 변수는 회수되지 않으며 다른 곳에서는 id 변수에 접근하지 못합니다
uniqueID=(function(){ var id=0; return function(){return id++}; })();
4.stirng,
String 클래스 사용 방법
var i, len,dsc = String(dir).toUpperCase() == 'DESC' ? -1 : 1,
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C++/java 계승 클래스의 다태적 상세 및 실례 코드C++/java 계승 클래스의 다태적 상세 정보 C++와 자바를 배운 사람들은 모두 알고 있다. 그들 둘은 모두 대상을 대상으로 프로그래밍을 할 수 있기 때문에 대상을 대상으로 프로그래밍하는 세 가지 특성은 바로 봉...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.