JavaScript 객체 지향 기능 코드 예제_javascript 기술

WBOY
풀어 주다: 2016-05-16 16:44:52
원래의
957명이 탐색했습니다.

1. 기본 클래스 활용
방법 1:

코드 복사 다음과 같습니다:

function sth(a) // 생성자
{
this.a = a;
this.fun = output;
함수 출력(a, b, c)

{
document.write(this.a)
}

//호출

var s = new sth(250);
s.fun(1, 2, 3)
ouput(1, 2, 3); sth 예전에는 틀렸어요

방법 2:


코드 복사 코드는 다음과 같습니다.
function sth(a)
{
this.a = a;
this.output = function()
{
document.write(this.a)
}
}

var s = new sth(2);
s.output(); // 출력 2

2. 상속
방법 1:

코드 복사 코드는 다음과 같습니다.
function A(x)
{
this.x = x ;
}
함수 B(x, y)

{
// 방법 1
/*
this.construct = A
this.construct(x)
삭제 .construct;
*/

// 방법 2
//A.call(this, x)

// 방법 3
A.apply(this , new Array(x)); // A.apply(this, 인수)도 가능하지만 인수 순서가 정확해야 합니다.

this.y = y
this.print = function ()
{
document.write("x = ", x,
", y = ", y)
}
}

var b = new B(1, 2);

b.print();
alert(B 인스턴스of A); // false 출력

장점: 다중 상속이 가능합니다(다중 호출만 하면 됩니다)

단점:

· 생성자로 사용해야 합니다.
· 이러한 유형의 상속을 조작하기 위해 인스턴스 오브 연산자를 사용하면 false가 됩니다

방법 2:


코드 복사 코드는 다음과 같습니다.
함수 A()
{
}

A.prototype.x = 1

함수 B()
{

}

B.prototype = new A(); // 매개변수를 사용할 수 없습니다!
B.prototype.y = 2;
B.prototype.print = function()
{
document.write(this.x, ", ", this.y, "}

var b = new B();
b.print();
document.write(b 인스턴스of A); // true 출력

단점:
· 다중 상속을 구현할 수 없음
· 생성자가 매개변수를 사용하지 않음

보통 둘 다 혼합 모드를 사용합니다


코드 복사 코드는 다음과 같습니다.
function A(x)
{
this.x = x;
}
A.prototype.printx = function() // 클래스 A에 쓰기 this.printx = function.... 아래에서도 가능합니다.
{
document.write(this.x, "
")
}

function B(x, y)
{
A.call(this, x);
this.y = y
}
B.prototype = new A();
B.prototype.printxy = function()
{
document.write(this.x, ", ", this.y, "
")
}

var b = new B(1, 2);
b.printx(); // 출력 1
b.printxy() // 출력 1, 2
document.write(b instanceof A); // true를 출력합니다

3. 유사한 정적 멤버 함수 사용

코드 복사 코드는 다음과 같습니다.
함수 sth(a)
{
this.a = a
}

sth.fun = 함수
{
문서. write(s.a );
}

var s = new sth(2)
sth.fun(s); // 출력 2


4. 객체 해제

코드 복사 코드는 다음과 같습니다. 🎜>var obj = new Object; // obj는 참조입니다
obj = null; // 이 객체를 모두 해제해야 하는 경우 역참조는 자동으로 가비지 수집을 수행합니다. 🎜 >

5. 함수 객체

코드 복사 코드는 다음과 같습니다.
var v = new Function("arg1", "arg2", "document.write(arg1 arg2);"); // 함수 객체를 정의합니다. 매개변수는 arg1, arg2입니다.
v(1, 2); // 3을 출력할 것입니다

6. 콜백 함수

코드 복사 코드는 다음과 같습니다.
함수 콜백(func, arg)
{
func(arg);
}

function fun(arg)
{
document.write(arg); 🎜>}

//callback(func, "sb"); // 이 접근 방식은 작동하지 않습니다

var func = new Function("arg", "fun(arg);" );
// 물론 func(arg)를 특정 실행 코드로 대체할 수도 있습니다.
// 하지만 함수 코드가 크다면 이렇게 하는 것이 가장 좋습니다
callback(func, "sb ");

7. 함수 오버로딩

코드 복사 코드는 다음과 같습니다.
function fun()
{
스위치(arguments.length)
{
사례 1:
document.write(arguments[0])
break; 사례 2 :
document.write(arguments[0] 인수[1]);
break;
기본값:
document.write("ERROR!")
break; > }
}

재미(1)
재미(1, 2);


8. "정적 변수"를 사용하여 함수를 구현하려면 함수 클로저를 사용하세요.


코드 복사 코드는 다음과 같습니다. 다음: function fun() {
var v = 1
function fun2()
{
v
document.write(v);
document.write("
");
return v;
}

return fun2

var func = fun() ;
func(); // 출력 2
func(); // 출력 3
func();
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿