Ext에서 apply 및 applyIf 방법의 응용

1466 단어 ext
Ext에서 apply 및 applyIf 방법의 응용
 
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"가 아니다

좋은 웹페이지 즐겨찾기