>  기사  >  웹 프론트엔드  >  JavaScript 공통 객체 클래스 생성 코드 및 장단점 ​​분석_js 객체지향

JavaScript 공통 객체 클래스 생성 코드 및 장단점 ​​분석_js 객체지향

WBOY
WBOY원래의
2016-05-16 18:40:061158검색

Javascript에서 클래스를 작성하는 방법에는 여러 가지가 있습니다.
1.Factory 메소드

코드 복사 코드는 다음과 같습니다.

function createCar(){
var car = new Object()
car.color="b"
car.length=1 ;
car.run=function(){alert(”run”);}
return car;
}

이러한 함수를 정의한 후 다음을 사용할 수 있습니다. 🎜> var car1 = createCar();
var car2 = createCar();
이 방법의 문제점은 자동차 객체가 생성될 때마다 실행 함수를 다시 실행해야 한다는 것입니다.


2.생성자 방식
코드 복사 코드는 다음과 같습니다.
function Car(){
this.color=”b”
this.length=1
this.run=function( ){alert(”run”);}
}
var car1=new Car();
var car2=new Car()

이것이 가장 기본입니다. 하지만 역시 팩토리 메소드와 같은 문제점이 있습니다


3.prototype 메소드
코드 복사 코드는 다음과 같습니다.
function Car(){
}
Car.prototype.color=”b”
Car.prototype.length; =1;
Car.prototype.run=function(){alert ("run");
}

이 메서드의 단점은 이 클래스에 참조 속성이 있다는 것입니다. , 한 개체의 이 속성을 변경하면 다른 개체의 속성도 변경됩니다.
예:

코드 복사 코드는 다음과 같습니다. 다음과 같습니다:
Car.prototype.data1=new Array() ;
var car1=new Car()
var car2=new Car(); data1.push("a");


이때 car2 .data에는 "a" 요소도 포함되어 있습니다


4. > [자주 사용하는 것]

코드 복사 코드는 다음과 같습니다. function Car() {
this.color=”b”;
this.length=1;
this .data1=new Array()
}
Car.prototype.run=function(){
alert("dddd");
}


이러한 방식은 이러한 단점을 보완하여 현재 널리 사용되는 방식입니다


5. Dynamic 프로토타입 방법 [자주 사용함]


코드 복사 코드는 다음과 같습니다. function Car(){
this.color="b";
this.length=1;
this.data1=new Array()

if(typeof Car.initilize= =”정의되지 않음”){
Car.prototype.run=function(){alert(”a”);}
}

Car.initilize=true
}


이러한 방법 중 가장 일반적으로 사용되는 방법은 하이브리드 프로토타입/생성자 및 동적 프로토타입 방법입니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.