JavaScript의 정적 변수
객체 지향 프로그래밍에서 정적 변수는 인스턴스가 아닌 클래스와 연결됩니다. 프로토타입 기반 상속 모델을 따르는 JavaScript에서는 다양한 접근 방식을 통해 정적 변수의 개념을 구현할 수 있습니다.
생성자 함수 접근 방식:
소개에 앞서 ES6 클래스 중 JavaScript는 객체 생성을 위해 생성자 함수를 활용했습니다. 생성자 함수 내에서 해당 함수 범위 내에서만 액세스할 수 있는 전용 변수를 정의할 수 있습니다. 반면에 공용 변수와 메서드는 인스턴스의 this 개체에 할당될 수 있습니다. 또한 모든 인스턴스에서 공유되는 생성자 함수 객체 자체에 정적 속성을 추가할 수 있습니다.
다음 예를 고려하세요.
function MyClass() { var privateVariable = "foo"; this.publicVariable = "bar"; this.privilegedMethod = function() { alert(privateVariable); }; } // Instance method available to all instances (loaded once) MyClass.prototype.publicMethod = function() { alert(this.publicVariable); }; // Static property shared by all instances MyClass.staticProperty = "baz"; var myInstance = new MyClass();
이 예에서 staticProperty는 다음에서 정의됩니다. MyClass 함수를 사용하며 MyClass의 모든 인스턴스에 액세스할 수 있습니다.
ES6 클래스 구문 접근법:
ES6에서는 클래스 선언을 위해 class 키워드를 도입했습니다. 클래스에서는 static 키워드를 사용하여 정적 속성이나 메서드를 정의할 수 있습니다. 이러한 정적 멤버는 클래스 이름 자체를 통해 액세스할 수 있습니다.
다음은 ES6 클래스로 구현된 이전 예입니다.
class MyClass { constructor() { const privateVariable = "private value"; this.publicVariable = "public value"; this.privilegedMethod = function() { console.log(privateVariable); }; } publicMethod() { console.log(this.publicVariable); } static staticProperty = "static value"; static staticMethod() { console.log(this.staticProperty); } } var myInstance = new MyClass(); myInstance.publicMethod(); // "public value" myInstance.privilegedMethod(); // "private value" MyClass.staticMethod(); // "static value"
두 접근 방식 모두 JavaScript에서 정적 변수를 생성하는 방법을 제공합니다. ES6 클래스 구문은 더 깔끔하고 간결한 메서드를 제공하는 반면, 생성자 함수 접근 방식은 인스턴스 메서드 내의 비공개 변수에 액세스하는 데 더 많은 유연성을 제공합니다.
위 내용은 JavaScript에서 정적 변수를 어떻게 구현할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!