사용자 정의 개체 생성
기본적으로 두 가지 방법이 있습니다. JavaScript로 사용자 정의 개체 만들기: 프로토타이핑 방법 및 클로저 way.
프로토타이핑 방식
이 방법을 사용하면 객체의 속성과 메서드를 프로토타입에 정의합니다. 다음 예제에서는 Shape 개체와 Shape를 하위 클래스로 분류하는 Circle 개체를 만듭니다.
function Shape(x, y) { this.x = x; this.y = y; } Shape.prototype.toString = function() { return 'Shape at ' + this.x + ', ' + this.y; }; function Circle(x, y, r) { Shape.call(this, x, y); // Invoke base class constructor this.r = r; } Circle.prototype = new Shape(); // Create prototype inheritance link Circle.prototype.toString = function() { return 'Circular ' + Shape.prototype.toString.call(this) + ' with radius ' + this.r; };
Closure Way
이 메서드는 상속을 사용하지 않습니다. 대신 각 인스턴스에는 자체 속성 및 메서드 복사본이 있습니다.
function Shape(x, y) { var that = this; this.x = x; this.y = y; this.toString = function() { return 'Shape at ' + that.x + ', ' + that.y; }; } function Circle(x, y, r) { var that = this; Shape.call(this, x, y); // Invoke base class constructor this.r = r; var _baseToString = this.toString; this.toString = function() { return 'Circular ' + _baseToString.call(that) + ' with radius ' + that.r; }; };
장점과 단점
프로토타이핑 방법
클로저 방식
올바른 방법 선택
선택은 프로젝트의 특정 요구 사항에 따라 달라집니다. 여러 수준의 상속이 포함된 대규모 개체 계층의 경우 프로토타입 제작이 선호될 수 있습니다. 단순하고 독립적인 객체의 경우 폐쇄 방식이 더 편리한 경우가 많습니다.
위 내용은 JavaScript에서 사용자 정의 객체를 생성하는 프로토타이핑 및 클로저 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!