>  기사  >  웹 프론트엔드  >  자바스크립트 클래스 정의의 4가지 메소드_js 객체지향

자바스크립트 클래스 정의의 4가지 메소드_js 객체지향

WBOY
WBOY원래의
2016-05-16 18:46:49954검색
코드 복사 코드는 다음과 같습니다.

/*
Factory 메소드 --- 생성 및 특정 유형 객체의 팩토리 함수 반환
*/
function createCar(color,doors,mpg){
var tempCar = new Object;
tempCar.color = color
tempCar. =doors;
tempCar.mpg = mpg;
tempCar.showCar = function(){
alert(this.color " "this.doors)
}
return tempCar; >}

/*
생성자 메서드 --- 생성자는 팩토리 함수와 매우 유사합니다.
*/
function Car(color,doors,mpg){
this . color = color;
this.doors = 문;
this.showCar = function(){
alert(this.color)
}
/*
프로토타입 방법---객체의 프로토타입 속성을 이용하면 새로운 객체가 생성되는 프로토타입이라고 볼 수 있습니다.
*/
function Car(color,doors , mpg){
this.color = color;
this.doors =doors;
this.mpg = mpg;
this.drivers = new Array("nomad","angel");
}

Car.prototype.showCar3 = function(){
alert(this.color)
}

/*
혼합 생성자/프로토타입 method --- 생성자를 사용하여 객체의 모든 비함수 속성을 정의하고, 프로토타입 메소드를 사용하여 객체의 함수 속성(메서드)을 정의합니다.
*/
function Car(sColor, iDoors, iMpg) {
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike", "Sue")

Car.prototype.showColor = function () {
alert(this.color);
};
/*
동적 프로토타입 메서드 --- 생성자 내에서 함수가 아닌 속성을 정의합니다. , 함수 속성은 프로토타입 속성을 사용하여 정의됩니다. 유일한 차이점은 객체 메서드가 할당되는 위치입니다.
*/
function Car(sColor, iDoors, iMpg) {
this.color = sColor;
this.doors = iDoors;
this.mpg =
this. drivers = new Array("Mike", "Sue");

if (typeof Car._initialized == "undefine") {

Car.prototype.showColor = function () {
alert(this.color);
};

Car._initialized = true;
}
} //이 메서드는 플래그(_initialized)를 사용하여 프로토타입이 임의의 방법이 할당되었습니다.


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