JavaScript est un langage dynamique, vous pouvez ajouter des attributs aux objets lors de l'exécution, ou vous pouvez supprimer des attributs aux objets.
La copie de code est la suivante:
<html>
<adal>
<script type = "text / javascript">
/ *
// 01. La première façon de définir un objet
var object = new object ();
alert (object.userName);
//01.1 Ajouter un nom d'utilisateur d'attribut
objet ["nom d'utilisateur"] = "liujianglong";
//Object.username="liujl ";
alert (object.userName);
//01.2 Supprimer le nom d'utilisateur de l'attribut
delete object.userName; // L'attribut de nom d'utilisateur a été supprimé de l'objet objet
alert (object.userName);
* /
// 02. La deuxième façon de définir les objets - le moyen le plus courant de définir des objets en javascript
var objet = {name: "Zhangsan", âge: 10, sexe: "fale"};
alert (object.name);
alert (object.age);
alert (object.sex);
</cript>
</ head>
<body>
</docy>
</html>
Nom de la propriété: le nom de la méthode est également OK. Parce que la fonction elle-même est un objet
Tri de la table JavaScript
La copie de code est la suivante:
<! Doctype html>
<html>
<adal>
<script type = "text / javascript">
Var Array = [1,3,25];
///////////////////////////////////////
var compare = fonction (num1, num2) {
var temp1 = parseInt (num1);
var temp2 = parseInt (num2);
if (temp1 <temp2) {
retour -1;
} else if (temp1 == temp2) {
retour 0;
}autre{
retour 1;
}
}
//array.sort(compare) ;//01. Le nom de la fonction est une référence d'objet
///////////////////////////////////////
// 02. Fonction anonyme méthode////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
array.sort (fonction c (num1, num2) {
var temp1 = parseInt (num1);
var temp2 = parseInt (num2);
if (temp1 <temp2) {
retour -1;
} else if (temp1 == temp2) {
retour 0;
}autre{
retour 1;
}
});
///////////////////////////////////////
alerte (tableau);
</cript>
</ head>
<body>
</docy>
</html>
Plusieurs façons de définir des objets en JavaScript (JavaScript n'a pas le concept de classes, seulement des objets)
La première méthode: élargir ses propriétés et méthodes en fonction des objets existants
La copie de code est la suivante:
<script type = "text / javascript">
// 01. Élargir ses propriétés et ses méthodes en fonction des objets existants
var object = new object ();
object.username = "Zhangsan";
object.sayName = function (name) {
this.UserName = name;
alert (this.userName);
}
alert (object.userName);
object.sayName ("Lisi");
alert (object.userName);
</cript>
Cette méthode a des limites car JavaScript n'a pas le concept de classe comme Java. Si vous écrivez une classe, alors nouveau peut obtenir un objet avec ces propriétés et méthodes.
Pour le moment, si vous voulez avoir Object2, vous ne pouvez écrire qu'une autre copie du code mentionné ci-dessus, ce qui n'est pas très bon.
La deuxième méthode: méthode d'usine
Similaire aux méthodes d'usine statiques en Java.
La copie de code est la suivante:
<! Doctype html>
<html>
<adal>
<script type = "text / javascript">
// Méthode d'usine d'objet
var createObject = function () {
var object = new object ();
object.username = "Zhangsan";
object.password = "123";
object.get = function () {
alert (this.userName + "," + object.password);
}
retour objet;
}
var obj1 = createObject ();
var obj2 = createObject ();
obj1.get ();
// modifie le mot de passe de l'objet 2
obj2 ["mot de passe"] = "123456";
obj2.get ();
</cript>
</ head>
<body>
</docy>
</html>
Il existe des inconvénients dans la création d'objets dans la méthode ci-dessus (chaque objet a une méthode GET, qui gaspille la mémoire), et la méthode d'usine améliorée (tous les objets partagent une méthode GET):
La copie de code est la suivante:
<! Doctype html>
<html>
<adal>
<script type = "text / javascript">
// Obtenez la méthode partagée par tous les objets
var get = function () {
alert (this.userName + "," + this.password);
}
// Méthode d'usine d'objet
var createObject = function (nom d'utilisateur, mot de passe) {
var object = new object ();
object.username = nom d'utilisateur;
object.password = mot de passe;
object.get = get; // Remarque: les supports de méthode ne sont pas écrits ici
retour objet;
}
// Créer un objet via une méthode d'usine
var object1 = createObject ("zhangsan", "123");
var object2 = createObject ("Lisi", "345");
// appelle la méthode GET
object1.get ();
object2.get ();
</cript>
</ head>
<body>
</docy>
</html>
La troisième méthode: définir un objet par constructeur
La copie de code est la suivante:
<! Doctype html>
<html>
<adal>
<script type = "text / javascript">
var get = function () {
alert (this.userName + "," + this.password);
}
Personne de fonction (nom d'utilisateur, mot de passe) {
// Avant d'exécuter la première ligne de code, le moteur JS générera un objet pour nous
this.userName = nom d'utilisateur;
this.password = mot de passe;
this.get = get;
// Ici, il y a une instruction de retour cachée utilisée pour renvoyer l'objet généré précédemment [Ceci est différent du modèle d'usine]
}
var personne = new personne ("Zhangsan", "123");
personne.get ();
</cript>
</ head>
<body>
</docy>
</html>
La quatrième méthode: créer un objet dans la méthode prototype
Le prototype est une propriété dans un objet d'objet, et tous les objets de personne peuvent également avoir le prototype de propriété.
Vous pouvez ajouter des propriétés et des méthodes au prototype de l'objet.
Inconvénients de simplement utiliser des prototypes pour créer des objets: ① Impossible de transmettre des paramètres, vous ne pouvez modifier la valeur que après la création de l'objet
② des erreurs de programme peuvent se produire
La copie de code est la suivante:
<! Doctype html>
<html>
<adal>
<script type = "text / javascript">
fonction de fonction () {
}
Personne.prototype.username = "zhangsan";
Personne.prototype.password = "123";
Personne.prototype.getInfo = fonction () {
alert (this.userName + "," + this.password);
}
var person1 = new personne ();
var person2 = new personne ();
Person1.Username = "Lisi";
Person1.getInfo ();
person2.getInfo ();
</cript>
</ head>
<body>
</docy>
</html>
La copie de code est la suivante:
<! Doctype html>
<html>
<adal>
<script type = "text / javascript">
fonction de fonction () {
}
Personne.prototype.UserName = new Array ();
Personne.prototype.password = "123";
Personne.prototype.getInfo = fonction () {
alert (this.userName + "," + this.password);
}
var person1 = new personne ();
var person2 = new personne ();
person1.username.push ("wanglaowu");
person1.username.push ("wanglaowu2");
person2.password = "456";
Person1.getInfo ();
person2.getInfo ();
</cript>
</ head>
<body>
</docy>
</html>
En définissant simplement un objet utilisant le prototype, vous ne pouvez plus affecter des valeurs initiales aux attributs dans le constructeur, et vous ne pouvez modifier les valeurs d'attribut qu'après générer l'objet.
La cinquième méthode: utilisez le prototype + constructeur pour définir l'objet -----------------
Les propriétés entre les objets n'interfèrent pas les unes avec les autres
Partagez la même méthode entre les objets
La copie de code est la suivante:
<! Doctype html>
<html>
<adal>
<script type = "text / javascript">
// Utilisez la méthode Prototype + Constructor pour définir l'objet
fonction de fonction () {
// Définition d'attribut dans le constructeur
this.UserName = new Array ();
this.password = "123";
}
// La méthode est définie dans le prototype
Personne.prototype.getInfo = fonction () {
alert (this.userName + "," + this.password);
}
var p1 = new personne ();
var p2 = new personne ();
p1.username.push ("zhangsan");
p2.Username.push ("Lisi");
p1.getInfo ();
p2.getInfo ();
</cript>
</ head>
<body>
</docy>
</html>
La sixième méthode: méthode prototype dynamique -------- Utilisation recommandée
Dans le constructeur, tous les objets partagent une méthode à travers la quantité de drapeau, et chaque objet a ses propres attributs.
La copie de code est la suivante:
<! Doctype html>
<html>
<adal>
<script type = "text / javascript">
var personne = fonction (nom d'utilisateur, mot de passe) {
this.userName = nom d'utilisateur;
this.password = mot de passe;
if (typeof personne.flag == "Undefined") {
alerte ("invoqué");
Personne.prototype.getInfo = fonction () {
alert (this.userName + "," + this.password);
}
Personne.flag = true;
}
}
var p1 = nouvelle personne ("Zhangsan", "123");
var p2 = new personne ("Lisi", "456");
p1.getInfo ();
p2.getInfo ();
</cript>
</ head>
<body>
</docy>
</html>