이 기사에서는 js 디자인 패턴에 대한 내용을 제공합니다. 싱글턴 패턴이란 무엇입니까? js 싱글톤 모드의 도입은 특정 참고 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
정의: 1 인스턴스가 하나뿐입니다. 2. 글로벌하게 접근 가능
메인 솔루션: 글로벌하게 사용되는 클래스는 자주 생성되고 소멸됩니다.
js 싱글턴 모드를 사용하는 경우: 인스턴스 수를 제어하고 시스템 리소스를 절약하고 싶을 때.
해결 방법: 시스템에 이미 이 싱글톤이 있는지 확인하고, 있으면 반환하고, 없으면 생성합니다.
js 싱글턴 모드의 장점: 1. 메모리에 인스턴스가 하나만 있어서 메모리 오버헤드가 줄어듭니다. 특히 인스턴스가 자주 생성되고 삭제되는 경우(예: 관리) 홈페이지) 캐시). 2. 자원의 다중 점유(예: 파일 쓰기 작업)를 피하십시오.
싱글턴 모델의 단점: 인터페이스 없음, 상속 없음, 단일 책임 원칙과 충돌, 클래스는 외부에서 인스턴스화하는 방법이 아닌 내부 논리에만 관심을 가져야 합니다. .
js 싱글턴 모드 사용 시나리오: 1. 글로벌 캐시. 2. 팝업창
const singleton = function(name) { this.name = name this.instance = null } singleton.prototype.getName = function() { console.log(this.name) } singleton.getInstance = function(name) { if (!this.instance) { // 关键语句 this.instance = new singleton(name) } return this.instance } // test const a = singleton.getInstance('a') // 通过 getInstance 来获取实例 const b = singleton.getInstance('b') console.log(a === b)
JavaScript는 클래스 없는 언어이기 때문에, JS의 전역 객체는 싱글톤 패턴의 두 가지 조건을 충족합니다. 전역 객체를 싱글턴 모드로 사용하는 경우가 많습니다
var obj = {}
팝업을 구현하는 한 가지 방법은 팝업을 먼저 만든 다음 Hidden을 사용하는 것입니다. 이는 불필요한 DOM 오버헤드를 낭비하게 됩니다. 팝업 상자가 필요할 때 이를 생성하고 이를 싱글톤 모드와 결합하여 단 하나의 인스턴스만 달성함으로써 일부 DOM 오버헤드를 절약할 수 있습니다. 다음은 로그인 상자 코드의 일부입니다.
//弹框层的实践 const createLoginLayer = function() { const myDiv = document.createElement('div') myDiv.innerHTML = '登入浮框' // myDiv.style.display = 'none' document.body.appendChild(myDiv); return myDiv } //使单例模式和创建弹框代码解耦 const getSingle = function(fn) { let result = null; return function() { if(!result){ result = fn.apply(this, arguments); } return result; } } const createSingleLoginLayer = getSingle(createLoginLayer) document.getElementById('loginBtn').onclick = function() { createSingleLoginLayer() }
관련 권장 사항:
JS 디자인 패턴의 생성자 패턴에 대한 자세한 설명
#🎜🎜 #
php 디자인 패턴 싱글턴 패턴 코드, php 디자인 패턴 #🎜🎜 #
위 내용은 Node.js 디자인 패턴: 싱글턴 패턴이 무엇인가요? js 싱글턴 모드 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!