ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript オブジェクト指向機能コードの例_JavaScript スキル

JavaScript オブジェクト指向機能コードの例_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 16:44:52958ブラウズ

1. 基本クラスの使用
方法 1:

コードをコピーします コードは次のとおりです。以下のように:

function sth(a) // コンストラクター
{
this.a = a;
this.fun = 出力;
関数出力(a, b, c)

{
document.write(this.a)
}

//呼び出し

var s = new sth(250);
s.fun(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 ;
}

function 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, argument) もできますが、引数の順序は正しい必要があります

this.y = y
this.print = function; ()
{
document.write("x = ", x,
", y = ", y);
var b = new B(1, 2);
b.print();
alert(B instanceof A); // 出力 false


利点: 多重継承を実現できます (複数の呼び出しを行うだけです)

欠点:
・コンストラクターとして使用する必要があります
・instanceof 演算子を使用してこのタイプの継承を操作すると false になります

方法 2:



コードをコピー


コードは次のとおりです:

function 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(binstanceof 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. 同様の静的メンバー関数の使用





コードをコピーします

コードは次のとおりです。 🎜>function sth(a)
{
this.a = a;




4. オブジェクトの解放





コードをコピー

コードは次のとおりです。 🎜>var obj = new Object; // obj は参照です

obj = null; // このオブジェクトを解放する必要がある場合は、そのすべての参照を 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. 関数のオーバーロード


コードをコピーします

{
ケース 1:
document.write(arguments[0])
;ケース 2 :
document.write(arguments[0] argument[1]);
デフォルト:
document.write("ERROR!"); > }
}

楽しい(1)
楽しい(1, 2);



8. 関数クロージャーを使用して「静的変数」を使用して関数を実装します



コードをコピー


関数 fun() { var v = 1; 関数 fun2() { v); document.write("
");
return
}

return fun2;

var func() ;
func(); // 出力 2
func(); // 出力 4


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。