JavaScript Objets
En JavaScript, les objets sont roi. Si vous comprenez les objets, vous comprenez JavaScript.
En JavaScript, presque «tout» est un objet.
- Les Booleans peuvent être des objets (ou les données primitives traitées comme des objets)
- Les Numbers peuvent être des objets (ou les données primitives traitées comme des objets)
- Strings peuvent être des objets (ou les données primitives traitées comme des objets)
- Dates sont toujours objets
- Maths sont des objets toujours
- Regular expressions sont des objets toujours
- Les Arrays sont des objets toujours
- Functions sont des objets toujours
- Objects sont des objets
En JavaScript, toutes les valeurs, sauf les valeurs primitives, sont des objets.
Les valeurs primitives sont: cordes ("John Doe") , des chiffres (3.14), true, false, null et undefined .
Les objets sont variables contenant des variables
variables JavaScript peuvent contenir des valeurs uniques:
Les objets sont des variables aussi. Mais les objets peuvent contenir de nombreuses valeurs.
Les valeurs sont écrites comme des paires nom: valeur (nom et la valeur séparés par deux points).
Exemple
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Essayez - le vous - même » Un objet JavaScript est une collection de valeurs nommées
Propriétés de l'objet
Les valeurs nommées, dans les objets JavaScript, sont appelées propriétés.
Propriété | Valeur |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
Objets écrits sous forme de paires nom-valeur sont similaires à:
- Les tableaux associatifs en PHP
- Dictionnaires en Python
- Les tables de hachage en C
- cartes Hash en Java
- Hashes en Ruby et Perl
Méthodes d'objets
Les méthodes sont des actions qui peuvent être effectuées sur des objets.
Propriétés de l'objet peuvent être des valeurs primitives, d'autres objets, et les fonctions.
Une méthode d'objet est une propriété d'objet contenant une définition de fonction.
Propriété | Valeur |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
fullName | function() {return this.firstName + " " + this.lastName;} |
objets JavaScript sont des conteneurs pour des valeurs nommées, appelées propriétés et méthodes.
Vous en apprendrez plus sur les méthodes dans les chapitres suivants.
Création d'un objet JavaScript
Avec JavaScript, vous pouvez définir et créer vos propres objets.
Il existe différentes façons de créer de nouveaux objets:
- Définir et créer un objet unique, en utilisant un objet littéral.
- Définir et créer un objet unique, avec le mot-clé new.
- Définir un constructeur d'objet, puis créer des objets du type construit.
Dans ECMAScript 5, un objet peut également être créé avec la fonction Object.create() .
L'utilisation d'un objet Literal
Ceci est la meilleure façon de créer un objet JavaScript.
En utilisant un littéral d'objet, vous avez tous deux définir et créer un objet dans une déclaration.
Un littéral d'objet est une liste de paires nom: valeur (comme l' age:50 ) à l' intérieur des accolades {} .
L'exemple suivant crée un nouvel objet JavaScript avec quatre propriétés:
Exemple
var
person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Essayez - le vous - même » Les espaces et les sauts de ligne ne sont pas importants. Une définition de l'objet peut couvrir plusieurs lignes:
Exemple
var person = {
firstName:"John",
lastName:"Doe",
age:50,
eyeColor:"blue"
};
Essayez - le vous - même » Utilisation de la nouvelle JavaScript mots-clés
L'exemple suivant crée également un nouvel objet JavaScript avec quatre propriétés:
Exemple
var
person = new Object();
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
Essayez - le vous - même » Les deux exemples ci-dessus font exactement les mêmes. Il n'y a pas besoin d'utiliser new Object() .
Par souci de simplicité, la lisibilité et la vitesse d'exécution, utilisez la première (l'objet de la méthode littérale).
L'utilisation d'un constructeur d'objet
Les exemples ci-dessus sont limités dans de nombreuses situations. Ils créent un seul objet.
Parfois, nous aimons avoir un "type d'objet" qui peut être utilisé pour créer de nombreux objets d'un type.
La méthode standard pour créer un "type d'objet" est d'utiliser une fonction de constructeur d'objet:
Exemple
function person(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eye;
}
var
myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");
Essayez vous - même » La fonction ci-dessus (personne) est un constructeur de l'objet.
Une fois que vous avez un constructeur d'objet, vous pouvez créer de nouveaux objets du même type:
var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");
Le this mots - clés
En JavaScript, la chose appelé this , est l'objet qui «possède» le code JavaScript.
La valeur de this , lorsqu'il est utilisé dans une fonction, est l'objet qui «possède» la fonction.
La valeur de this , lorsqu'il est utilisé dans un objet, est l'objet lui - même.
Le this mot - clé dans un constructeur de l' objet n'a pas de valeur. Il est seulement un substitut pour le nouvel objet.
La valeur de this deviendra le nouvel objet lorsque le constructeur est utilisé pour créer un objet.
A noter que ce ne sont pas une variable. Il est un mot clé. Vous ne pouvez pas modifier la valeur de this .
Built-in JavaScript Constructors
JavaScript a des constructeurs intégrés pour les objets natifs:
Exemple
var x1 = new Object(); // A new Object object
var x2 = new String(); // A new String object
var x3 = new Number(); // A new Number object
var x4 = new Boolean() // A new Boolean object
var x5 = new Array(); // A new Array object
var x6 = new RegExp(); // A new RegExp object
var x7 = new Function(); // A new Function object
var x8 = new Date(); // A new Date object
Essayez - le vous - même » Le Math() objet est pas dans la liste. Math est un objet global. Le nouveau mot-clé ne peut pas être utilisé sur Math.
Savais-tu?
Comme vous pouvez le voir, JavaScript a des objections versions des types de données primitifs String, Number et booléens.
Il n'y a aucune raison de créer des objets complexes. Les valeurs primitives exécutent beaucoup plus rapide.
Et il n'y a aucune raison d'utiliser un nouveau Array() . Utilisez littéraux de tableau à la place: []
Et il n'y a aucune raison d'utiliser les nouvelles RegExp() . Utilisez littéraux de modèle à la place: /()/
Et il n'y a aucune raison d'utiliser une nouvelle Function() . Utilisez des expressions de fonction à la place: function () {} .
Et il n'y a aucune raison d'utiliser new Object() . Utilisez littéraux d'objet à la place: {}
Exemple
var x1 = {}; // new object
var x2 = ""; // new primitive string
var x3 = 0; // new primitive number
var x4 = false; // new primitive boolean
var x5 = []; // new array object
var x6 = /()/ // new regexp object
var x7 = function(){}; // new function object
Essayez - le vous - même » JavaScript Les objets sont Mutable
Les objets sont mutable: Ils sont traités par référence et non par valeur.
Si y est un objet, l'instruction suivante ne crée pas une copie de y:
var x = y; // This will not create a copy of y.
L'objet x est pas une copie de y. Il est y. Les deux x et les points y sur le même objet.
Toute modification apportée à y va aussi changer x, parce que x et y sont le même objet.
Exemple
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}
var x = person;
x.age = 10; // This will change both x.age and person.age
Essayez - le vous - même »