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();
이 기사가 자바스크립트 프로그래밍을 배우는 모든 사람에게 도움이 되기를 바랍니다.