가장 간단 한 예 를 들 어 OO 의 자바 스 크 립 트 를 Ynwp 에서 선택 한 블 로 그 를 설명 합 니 다.
OO 의 자바 스 크 립 트 는 그리 깊 지 않 습 니 다. 귀 찮 으 면 구 글 에서 나 온 국민 들 의 소개 글 이 자주 수 다스 럽 고 그 사이 의 표현 이 각각 다 르 기 때문에 함께 놓 으 면 머리 가 커 집 니 다.여기 서 단순 주 의 를 되 찾 고 가장 간단 한 예 로 OO Javascript 을 설명 합 니 다.1. 아주 간단 한 예 는 세 가지 키워드 만 이해 해 야 한다. 첫 번 째 는 function 이 고 JS 세계 에서 Class 의 정 의 는 'function' 이 며 function 안의 내용 은 구조 함수 의 내용 이다.두 번 째 는 this 지침 으로 이 함 수 를 호출 하 는 대상 을 대표 합 니 다.세 번 째 는 prototype 입 니 다. 이 를 통 해 구성원 함 수 를 정의 하고 규범 과 보험 을 비교 합 니 다.
// Circle , r, PI area()
function Circle(radius)
{
this.r = radius;
}
Circle.PI = 3.14159;
Circle.prototype.area = function( ) {return Circle.PI * this.r * this.r;}
// Circle
var c = new Circle(1.0);
alert(c.area());
다른 구성원 함수 정 의 는 이렇게 쓸 수 있다. function compute_area(){return Circle.PI * this.r * this.r;}
Circle.prototype.area=compute_area;
2. 상속 주의 점 1. 상속 관 계 를 정의 하 는 ChildCircle. prototype = new Circle (0).그 중 0 은 자 리 를 차지 하 는 데 쓰 이 는 2. 부류 의 구조 함 수 를 호출한다 this.base=Circle; this.base(radius); // ChildCircle
function ChildCircle(radius)
{
this.base=Circle;
this.base(radius);
}
ChildCircle.prototype=new Circle(0);
function Circle_max(a,b)
{
if (a.r > b.r) return a;
else return b;
}
ChildCircle.max = Circle_max;
// ChildCircle
var c = new ChildCircle(1);
var d = new ChildCircle(2);
var bigger = d.max(c,d);
alert(bigger.area());
3. var 식 정의 JS 는 var Circle = {raidus: 1.0, PI: 3.1415} 의 형식 도 지원 합 니 다. 문법 은 CSS 의 정의 와 같 습 니 다.따라서 Circle 이 하나의 인 스 턴 스 만 있다 면 아래 의 정의 방식 은 더욱 간결 합 니 다. var newCircle=
{
r:1.0,
PI:3.1415,
area: function(){ return this.PI * this.r * this.r;}
};
alert(newCircle.area());
BTW. 배 불리 먹 었 습 니 다. 레일 스 가 가 져 온 OO 자 바스 크 립 트 라 이브 러 리 인 Prototype 을 볼 수 있 습 니 다. 사실 자 바스 크 립 트 의 현재 문법 은 그렇게 어색 하 게 OO 모드 로 쓰 는 것 에 적합 하지 않 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.