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. > [자주 사용하는 것]
this.color=”b”;
this.length=1;
this .data1=new Array()
}
Car.prototype.run=function(){
alert("dddd");
}
이러한 방식은 이러한 단점을 보완하여 현재 널리 사용되는 방식입니다
5. Dynamic 프로토타입 방법 [자주 사용함]
this.color="b";
this.length=1;
this.data1=new Array()
if(typeof Car.initilize= =”정의되지 않음”){
Car.prototype.run=function(){alert(”a”);}
}
Car.initilize=true
}
이러한 방법 중 가장 일반적으로 사용되는 방법은 하이브리드 프로토타입/생성자 및 동적 프로토타입 방법입니다.