Maison > interface Web > js tutoriel > Exemples de codes de fonctionnalités orientés objet JavaScript_compétences Javascript

Exemples de codes de fonctionnalités orientés objet JavaScript_compétences Javascript

WBOY
Libérer: 2016-05-16 16:44:52
original
968 Les gens l'ont consulté

1. Utilisation des classes de base
Méthode 1 :

Copier le code Le code est comme suit :

function sth(a) // Constructeur
{
this.a = a;
this.fun = output;
fonction sortie(a, b, c)

{
document.write(this.a);
}

//Appel

var s = new sth(250);
s.fun(1, 2, 3);
ouput(1, 2, 3); qc C'était mal avant

Méthode 2 :


Copier le code Le code est le suivant :
fonction qch(a)
{
this.a = a;
this.output = function()
{
document.write(this.a);
}
}

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

2. Héritage
Méthode 1 :

Copier le code Le code est le suivant :
fonction A(x)
{
this.x = x ;
}
function B(x, y)

{
// Méthode 1
/*
this.construct = A
this.construct(x); .construct;
*/

// Méthode 2
//A.call(this, x);

// Méthode 3
A.apply(this); , new Array(x)); // Vous pouvez également A.apply(this, arguments), mais l'ordre des arguments doit être correct

this.y = y
this.print = function; ()
{
document.write("x = ", x,
", y = ", y
}
}
);
var b = new B(1, 2);

b.print();

alert(B instanceof A); // Sortie false

Avantages : un héritage multiple peut être obtenu (il suffit de passer plusieurs appels)

Inconvénients :

· Doit être utilisé comme constructeur

· L'utilisation de l'opérateur instanceof pour opérer ce type d'héritage entraîne false

Méthode 2 :


Copier le code Le code est le suivant : fonction A()
{

} A.prototype.x = 1;


fonction B()
{

}

B.prototype = new A(); // Impossible de prendre des paramètres !

B.prototype.y = 2;
B.prototype.print = function()
{
document.write(this.x, ", ", this.y, "}

var b = new B();
b.print();
document.write(b instanceof A); // Sortie true


Inconvénients :

· Impossible d'implémenter l'héritage multiple
· Constructeur sans paramètres

Conseils

Utilisez généralement le mode mixte, les deux ensemble


function A(x)
{
this.x = x
}
A.prototype.printx = function() // Écrivez dans la classe A this.printx = function... . C'est aussi possible, pareil ci-dessous
{
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(); // Sortie 1
b.printxy(); // Sortie 1, 2
document.write(b) instanceof A); // Sortie vrai

3. Utilisation de fonctions membres statiques similaires


Copier le code Le code est le suivant :function qch(a)
{
this.a = a
}

sth.fun = function(s)
{
document. write(s.a );
}

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

4. Libération des objets

Copier le code Le code est le suivant : var obj = new Object; // obj est une référence
obj = null; // La déréférence effectuera automatiquement le garbage collection si vous devez libérer cet objet, attribuez toutes ses références à null

5. Objet fonction

Copier le code Le code est le suivant :
var v = new Function("arg1", "arg2", "document.write(arg1 arg2);"); // Définir un objet fonction, les paramètres sont arg1, arg2
v(1, 2); // Will Will produira 3

6. Fonction de rappel

Copier le code Le code est le suivant :
rappel de fonction (func, arg)
{
func(arg);
}

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

//callback(func, "sb"); // Cette approche ne fonctionne pas

var func = new Function("arg", "fun(arg);" );
// Bien sûr, vous pouvez également remplacer func(arg) par un code d'exécution spécifique,
// Mais il est préférable de le faire si le code de la fonction est énorme
callback(func, "sb ");

7. Surcharge des fonctions

Copiez le code Le code est le suivant :
function fun()
{
switch (arguments.length)
{
cas 1 :
document.write(arguments[0]); > cas 2 :
document.write(arguments[0] arguments[1]);
break;
default:
document.write("ERROR!"); 🎜> }
}

amusement(1);
amusement(1, 2);



8. Utilisez des fermetures de fonctions pour implémenter des fonctions avec des "variables statiques"


Copier le code

Coder en tant que suit : function fun() { var v = 1; function fun2()
{
v;
document.write("
");
return v;
}

return fun2
}

var func = fun() ;
func(); // Sortie 2
func(); // Sortie 3
func(); // Sortie 4


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal