JavaScript에서 사용자 정의 개체를 만드는 방법
JavaScript는 사용자 정의 개체를 만들기 위한 다양한 접근 방식을 제공합니다. 다음은 두 가지 서로 다른 모델입니다.
프로토타이핑 방식
프로토타이핑 모델은 JavaScript에 기본입니다. 여기에는 생성자 함수의 프로토타입 속성을 사용하여 인스턴스에 속성과 메서드를 추가하는 작업이 포함됩니다.
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 constructor this.r = r; } Circle.prototype = new Shape(); // Inherit prototype Circle.prototype.toString = function() { return 'Circular ' + Shape.prototype.toString.call(this) + ' with radius ' + this.r; };
장점:
단점:
폐업 방식
클로저 모델은 클로저를 사용하여 인스턴스별 데이터와 메서드를 묶어 상속을 방지합니다.
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); this.r = r; var _baseToString = this.toString; this.toString = function() { return 'Circular ' + _baseToString.call(that) + ' with radius ' + that.r; }; }; var mycircle = new Circle();
장점:
단점:
위 내용은 JavaScript에서 사용자 정의 개체를 생성하기 위해 프로토타이핑과 클로저 중에서 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!