>웹 프론트엔드 >JS 튜토리얼 >JavaScript 디자인 패턴 배우기 - 싱글턴 패턴_javascript 기술

JavaScript 디자인 패턴 배우기 - 싱글턴 패턴_javascript 기술

WBOY
WBOY원래의
2016-05-16 15:19:161101검색

1. 정의

클래스에 인스턴스가 하나만 있음을 보장하고 이에 대한 전역 액세스 지점을 제공합니다.
로그인 버튼을 클릭하면 로그인 플로팅 창이 페이지에 나타납니다. 이 로그인 플로팅 창은 로그인 버튼을 몇 번 클릭해도 한 번만 생성됩니다. 싱글톤 패턴으로 사용하기 위해.

2. 구현 원칙

싱글턴을 구현하는 것은 복잡하지 않습니다. 변수를 사용하여 특정 클래스에 대해 객체가 생성되었는지 여부를 표시하면 다음에 해당 클래스의 인스턴스를 가져올 때 이전에 생성된 객체가 직접 반환됩니다.

3. 가짜 싱글톤

전역 변수는 싱글톤 모드가 아니지만 JavaScript 개발에서는 전역 변수를 싱글톤으로 사용하는 경우가 많습니다.

var a = {};

전역 변수로 인한 명명 오염 줄이기
(1) 네임스페이스 사용

var namespace1 = {
  a: function(){},
  b: 2
}

(2) 클로저를 사용하여 개인 변수를 캡슐화합니다

var user = (function() {
  var _name = 'lee',
    _age = '25';
  return {
    getUserInfo: function() {
      return _name + ":" + _age;
    }
  };
})();

4. 게으른 싱글톤: 필요할 때만 객체 인스턴스 생성

var getSingle = function(fn) {
  var result;
  return function() {
    return result || (result = fn.apply(this, arguments));
  };
};

// 测试
function testSingle(){}
getSingle(testSingle)() === getSingle(testSingle)();  // true

5. 보충:

(1) 지연 로딩

var lazyload = function() {
  console.log(1);
  lazyload = function() {
    console.log(2);
  }
  return lazyload();
}

lazyload();

(2) 사전 로드

var preload = (function() {
  console.log(1);
  preload = function() {
    console.log(2);
  };
  return preload;
})();

preload();

이 기사가 자바스크립트 프로그래밍을 배우는 모든 사람에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.