Chaque objet de fonction a un attribut de longueur, indiquant le nombre de paramètres que la fonction prévoit.
La copie de code est la suivante:
<html>
<adal>
<script type = "text / javascript">
var add = fonction (num1, num2, num3) {
alert (num1 + num2 + num3);
}
alert (add.length);
</cript>
</ head>
<body>
</docy>
</html>
Sur la création de js orientés objet,
Cible:
Construire un objet de commande.
Contient trois attributs: date, montant, soumissionnaire
Contient une méthode: String d'affichage: "XX a soumis une commande avec un quota de: xxxx yuan dans xxx-xx-xx"
Une méthode d'usine
La copie de code est la suivante:
<script type = text / javascript>
/ *
Méthode d'usine: renvoyez des objets en utilisant des méthodes, il n'est pas nécessaire de générer de nouveaux objets via neufs lors de leur utilisation.
* /
Function createOrder () // Vous pouvez également créer une méthode d'usine avec des paramètres pour initialiser les données d'objet en fonction des paramètres passés.
{
var ordre = nouveau objet ();
order.date = "1990-1-1";
order.price = "3200";
Order.name = "Vince Keny";
order.show = function () // Si vous placez la méthode Show dans l'usine, vous créerez séparément une méthode Show pour chaque instance. Les ressources gaspillées sont l'inconvénient de ce modèle.
{
alert (this.name + "in" + this.date + "commande avec un quota de" + this.price + "rmb.")
}
Ordre de retour;
}
// Renvoie l'objet à l'aide du mode d'usine:
var ordre = createOrder ();
// Il peut également être utilisé de cette manière, transformant le modèle d'usine en "pseudo-constructeur". Parce que New est utilisé dans l'usine, le nouvel opérateur lors de la création de l'objet sera ignoré.
var ordre2 = new CreateOrder ();
Order.show ();
Order2.Show ();
</cript>
Deux méthode de constructeur
La copie de code est la suivante:
/ *
La méthode du constructeur et la déclaration de méthode sont les mêmes que la méthode d'usine, et il y a les mêmes problèmes et peut être extraite. La différence est que cela est utilisé pour déclarer les attributs.
Et vous devez utiliser le nouvel opérateur pour générer une instance.
* /
Ordre de fonction ()
{
this.date = "1990-1-1";
this.price = "3200";
this.name = "Vince Keny";
this.show = function ()
{
alert (this.name + "in" + this.date + "commande avec un quota de" + this.price + "rmb.")
}
}
var ordonnance = new Ordre ();
Order.show ();
Trois méthodes prototypes
La copie de code est la suivante:
/ *
Prototype Méthode: Utiliser le prototype
* /
Ordre de fonction ()
{}
Order.prototype.date = "1990-1-1";
Order.prototype.price = "3200";
Order.prototype.name = "Vince Keny";
Order.prototype.show = function ()
{
alert (this.name + "in" + this.date + "commande avec un quota de" + this.price + "rmb.")
}
var ordonnance = new Ordre ();
Order.show ();
Quatre méthode de constructeur / prototype hybride
La copie de code est la suivante:
/ *
Méthode de constructeur / prototype hybride: Initialisez les champs d'attribut à l'aide de la méthode du constructeur et utilisez la méthode du prototype pour construire des méthodes.
* /
Ordre de fonction ()
{
this.date = "1990-1-1";
this.price = "3200";
this.name = "Vince Keny";
}
Order.prototype.show = function ().
{
alert (this.name + "in" + this.date + "commande avec un quota de" + this.price + "rmb.")
}
var ordonnance = new Ordre ();
Order.show ();
Cinq méthodes hybrides dynamiques
La copie de code est la suivante:
/ *
Méthode de mélange dynamique: La différence entre la méthode de mélange réside dans la position de déclarer la méthode. Mettre la vie de la méthode à l'intérieur du constructeur est plus conforme à l'orientation des objets.
* /
Ordre de fonction ()
{
this.date = "1990-1-1";
this.price = "3200";
this.name = "Vince Keny";
if (typeof order._Initialized == "Undefined")
{
Order.prototype.show = function ().
{
alert (this.name + "in" + this.date + "commande avec un quota de" + this.price + "rmb.")
};
Order._Initialized = true;
}
}
Fonction Car (Scolor, Idoors) {
var otempcar = nouvel objet;
otempcar.color = scolor;
otempcar.doors = idooes;
otempcar.showcolor = function () {
alerte (this.color)
};
retour otempcar;
}
var ocar1 = new Car ("Red", 4);
var ocar2 = new car ("bleu", 3);
ocar1.showColor (); // Sortie "rouge"
ocar2.showColor (); // Sortie "bleu"