1. 기본 클래스 사용
방법 1 : 방법 1
코드 사본은 다음과 같습니다.
함수 sth (a) // 생성자 함수
{
this.a = a;
this.fun = 출력; // 멤버 함수
}
함수 출력 (A, B, C)
{
document.write (this.a);
}
//부르다
var s = New STH (250);
s.fun (1, 2, 3);
OUPUT (1, 2, 3); // STH 전에 출력이 잘못된 경우
방법 2 : 방법 2.
다음과 같이 코드를 복사하십시오 : function sth (a)
{
this.a = a;
this.output = function ()
{
document.write (this.a);
}
}
var s = New STH (2);
s.output (); // 출력 2
2. 상속
방법 1 : 방법 1
다음과 같이 코드를 복사하십시오. 함수 a (x)
{
this.x = x;
}
함수 B (X, Y)
{
// 메소드 1
/*
this.construct = a;
this.construct (x);
this.construct;
*/
// 방법 2
//a.call(this, x);
// 방법 3
A.Apply (이, 새 배열 (x)); // A.Apply (this, arguments) 일 수도 있지만 인수 매개 변수 순서는 정확해야합니다.
this.y = y;
this.print = function ()
{
document.write ( "x =", x,
", y =", y);
}
}
var b = 새로운 b (1, 2);
B.print ();
경고 (b 인스턴스 a); // false를 출력합니다
장점 : 다중 상속을 달성 할 수 있습니다 (여러 통화로 전화하십시오)
결점:
・ 생성자로 사용해야합니다
∎ 연산자 인스턴스를 사용 하여이 상속 결과를 거짓으로 작동하십시오.
방법 2 : 방법 2.
다음과 같이 코드를 복사하십시오 : function a ()
{
}
a.prototype.x = 1;
기능 b ()
{
}
B. prototype = 새로운 a (); // 매개 변수를 사용할 수 없습니다!
B. prototype.y = 2;
b.prototype.print = function ()
{
document.write (this.x, ",", this.y, "<br>");
}
var b = 새로운 b ();
B.print ();
document.write (b 인스턴스 a); // true를 출력합니다
결점:
・ 여러 상속을 달성 할 수 없습니다
・ 생성자에는 매개 변수가 없습니다
팁
일반적으로 하이브리드 모드를 사용합니다
코드 사본은 다음과 같습니다.
기능 a (x)
{
this.x = x;
}
a.prototype.printx = function () // 쓰기 this.printx = function .... 또한 가능합니다.
{
document.write (this.x, "<br>");
}
함수 B (X, Y)
{
A.call (this, x);
this.y = y;
}
B. prototype = 새로운 a (); // 매개 변수를 사용할 수 없습니다!
b.prototype.printxy = function ()
{
document.write (this.x, ",", this.y, "<br>");
}
var b = 새로운 b (1, 2);
B.printx (); // 출력 1
B.printxy (); // 출력 1, 2
document.write (b 인스턴스 a); // true를 출력합니다
3. 정적 멤버 기능 사용
다음과 같이 코드를 복사하십시오 : function sth (a)
{
this.a = a;
}
sth.fun = function (s)
{
document.write (SA);
}
var s = New STH (2);
sth.fun (들); // 출력 2
IV. 물체의 출시
다음과 같이 코드를 복사하십시오. var obj = 새 개체; // OBJ는 참조입니다
obj = null; // DeReference는 자동으로 쓰레기 수집을받습니다. 이 객체를 전혀 해제 해야하는 경우 모든 참조는 NULL에 할당해야합니다.
V. 기능 객체
다음과 같이 코드를 복사하십시오. var v = new 함수 ( "arg1", "arg2", "document.write (arg1 + arg2);"); // 매개 변수로 함수 객체를 각각 정의합니다. Arg1과 Arg2
v (1, 2); // 출력 3
6. 콜백 함수
다음과 같이 코드를 복사하십시오 : 함수 콜백 (func, arg)
{
func (arg);
}
기능 재미 (arg)
{
document.write (arg);
}
// 콜백 (func, "sb"); //이 메소드는 작동하지 않습니다
var func = new 함수 ( "arg", "fun (arg);");
// 물론 func (arg)는 특정 실행 코드로 대체 할 수도 있습니다.
//하지만 함수 코드가 크면이 작업을 수행하는 것이 좋습니다.
콜백 (func, "sb");
7. 기능 과부하
다음과 같이 코드를 복사하십시오 : function fun ()
{
스위치 (Arguments.length)
{
case 1:
document.write (인수 [0]);
부서지다;
case 2:
document.write (인수 [0] + 인수 [1]);
부서지다;
기본:
document.write ( "오류!");
부서지다;
}
}
재미 (1);
재미 (1, 2);
8. 기능 폐쇄를 사용하여 "정적 변수"로 기능을 구현하십시오.
다음과 같이 코드를 복사하십시오 : function fun ()
{
var v = 1;
기능 fun2 ()
{
++ V;
document.write (v);
document.write ( "<br>");
반환 v;
}
return fun2;
}
var func = fun ();
func (); // 출력 2
func (); // 출력 3
func (); // 출력 4