Ext에서 apply 및 applyIf 방법의 응용
1466 단어 ext
apply 및 applyIf 방법은 모두 한 대상의 속성을 다른 대상에 응용하는 데 사용되며 속성 복사에 해당한다.다른 것은 apply가 대상 대상의 속성을 덮어쓰고, applyIf는 대상 대상에 없고 원본 대상에 있는 속성만 복사합니다.
'apply 방법의 서명은'apply(Object obj, Object config, Object defaults):Object'입니다. 이 방법은 세 가지 파라미터를 포함하고 첫 번째 파라미터는 복사할 대상 대상, 두 번째 파라미터는 복사할 원본 대상, 세 번째 파라미터는 선택할 수 있으며 대상 대상에게 기본값을 제공합니다.세 번째 매개 변수(있다면)와 두 번째 매개 변수의 속성을 첫 번째 매개 변수 대상에 복사하는 것으로 간단하게 이해할 수 있다.다음 코드를 참조하십시오.
var b1={
p1:"p1 value",
p2:"p2 value",
f1:function(){alert(this.p2)}
};
var b2=new Object();
b2.p2="b2 value";
Ext.apply(b2,b1);
b2.f1();
위의 코드에서 Ext.apply(b2,b1)라는 문장은 b1의 속성을 b2 대상에 복사했기 때문에 b2의 f1 방법을 호출하면'p2value'의 알림 정보를 출력할 수 있습니다.비록 b2 대상은 p2 속성 값을 포함하고 있지만, 복사 후 이 속성 값은 덮어씁니다.apply 방법을 호출할 때 세 번째 매개 변수에서 복사 속성의 기본값을 지정할 수 있습니다. 예를 들어 다음 코드:
Ext.apply(b2,b1,{p3:"p3 value"});
alert(b2.p3);
이렇게 하면 b2에 p3의 속성을 포함할 수 있습니다. 값은 "p3value"입니다.
applyIf 방법의 기능은 apply와 마찬가지로 목표 대상과 원본 대상에 존재하는 속성을 복사하지 않습니다.예를 들어 앞에서 apply 방법을 보여 준 코드를 applyIf로 바꾸면 다음과 같다.
Ext.applyIf(b2,b1);
b2.f1();
b2에 p2 속성이 존재하기 때문에 b2.f1 () 방법에서this를 인용합니다.p2 때 얻은 것은 "b2value"이지 b1에서 정의한 "p2value"가 아니다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ExtJS 3.2 학습 노트(3) 사용자 정의 이벤트Extjs에서 모든 상속은 Ext.util에서 합니다.Observable 클래스의 컨트롤은 이벤트를 지원할 수 있습니다. 클래스에 대해 이벤트를 사용자 정의하려면 다음 절차를 따르십시오. 1, 먼저 클래스를 정의합니...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.