>  기사  >  웹 프론트엔드  >  javascript closures_javascript 기술의 고급 사용 예

javascript closures_javascript 기술의 고급 사용 예

WBOY
WBOY원래의
2016-05-16 17:29:581158검색

확장 프로그램
코드:

코드 복사 코드는 다음과 같습니다.

var blogModule = (function ( my) {
my.AddPhoto = function () {
//내부 코드 추가
};
return my;
}(blogModule));

말하기:
메서드에 자신을 전달한 다음 부품 조립과 비슷한 메서드 확장을 구현합니다.
코드:
코드 복사 코드는 다음과 같습니다.

var blogModule = (function (my) {var oldAddPhotoMethod = my.AddPhoto;
my.AddPhoto = function () { // 오버로드된 메서드, 이전 메서드는 oldAddPhotoMethod를 통해 계속 호출할 수 있습니다.}; return my;}(blogModule));

설명:
장점은 호출할 수 있다는 것입니다. 이전 방법.
복제 및 상속
코드:
코드 복사 코드는 다음과 같습니다.

var blogModule = (function (old) { var my = {}, key; for (key in old) { if (old.hasOwnProperty(key)) { my[key] = old[key]; } } var oldAddPhotoMethod = old.AddPhoto = function () { // 복제 후 다시 작성되었습니다. 물론 oldAddPhotoMethod를 계속 호출할 수 있습니다. } (blogModule));

말씀:
간단한 복제 구현
파일 전체에서 개인 객체 공유
코드:
코드 복사 코드는 다음과 같습니다.

var blogModule = (function (my) { var _private = my._private = my._private || {}, _seal = my._seal = my._seal || function () { my._private 삭제; my._unseal 삭제 }, _unseal = my._unseal || 함수 () { my._private = my._seal; = _unseal; }; return my; } (blogModule || {}));

말해 보세요:
blogModule._seal()은 내부 변수를 비공개화합니다. 내 생각에는 이 구현이 최고는 아니지만 잠금 해제 및 잠금 기능을 배울 수 있습니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.