함수 리터럴
: 입니다.
function MyScript(){} (function() { var THIS = this; function defined(x) { return typeof x != 'undefined'; } this.ready = false; this.init = function( { this.ready = true; }; this.doSomething = function() { }; var options = { x : 123, y : 'abc' }; this.define = function(key, value) { if(defined(options[key])) { options[key] = value; } }; }).apply(MyScript);acapsulation
를 위해 함수 리터럴을 사용하기 시작했습니다. 모든 형식의 스크립트는 해당 인클로저로 래핑 할 수 있으며, 개인 스코프로 효과적으로 "밀봉"하여 동일한 스코프의 다른 스크립트와 충돌하지 않거나 전 세계 스코프의 데이터와 충돌하지 않습니다. 끝에있는 브래킷 페어는 다른 기능과 마찬가지로 범위를 실행하는 것입니다.
(function() { ... })();공개 데이터 를 공유합니다.
function MyScript(){} (function() { var THIS = this; function defined(x) { return typeof x != 'undefined'; } this.ready = false; this.init = function( { this.ready = true; }; this.doSomething = function() { }; var options = { x : 123, y : 'abc' }; this.define = function(key, value) { if(defined(options[key])) { options[key] = value; } }; }).apply(MyScript);
공개 방법과 속성을 만들 수 있으며 다른 인스턴스와 외부에 액세스 할 수 있습니다.
(function() { ... })();
싱글 톤 에 싸여 있습니다.
function doSomething() { ... } doSomething();참고 : 더 원하십니까?
위 내용은 내가 가장 좋아하는 JavaScript 디자인 패턴의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!