>웹 프론트엔드 >JS 튜토리얼 >javascript_js 객체 지향으로 클래스를 작성하는 여섯 번째 방법

javascript_js 객체 지향으로 클래스를 작성하는 여섯 번째 방법

WBOY
WBOY원래의
2016-05-16 18:50:44856검색

6. Prototype.js에서 클래스 작성 방법

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

//.js의 프로토타입 코드
var Class = {
create: function() {
return function() {
this.initialize.apply(this, 인수)
}
}
}
//단순화
function Clazz() {
return function(){
this.initialize.apply(this,arguments)
}
}

클래스를 다음과 같이 작성하고,
코드를 복사 코드는 다음과 같습니다 :

//클래스 이름 Person
var Person = Class.create()

//프로토타입 재작성을 통해 Person 정의
Person.prototype = {
초기화: 함수(이름) {
this.name = 이름;
},
getName: function() {
return this.name;
},
setName: 함수 (이름) {
this.name = 이름;
}
}

//객체 생성
var p = new Person("jack"); log(p. constructor == Person);//false

initialize는 객체의 초기화를 완료합니다(생성자와 동일). 메서드를 순서대로 작성하면 됩니다.



p.constructor == Person is false라는 문장을 보면 문제가 있습니다. 그 이유는 Person의 프로토타입이 다시 작성되었기 때문입니다. 생성자가 올바른 생성자를 가리키도록 하려면 프로토타입을 다시 작성할 때 생성자 속성만 유지하면 됩니다.

코드 복사 코드는 다음과 같습니다.
Person.prototype = {
constructor : Person, //참고
initialize : function(name) {
this.name = name
},
getName : function() {
return this.name; >},
setName : function(name) {
this.name = name;
}
}


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