Maison > interface Web > js tutoriel > Explication détaillée des connaissances Javascript Objects_Basic

Explication détaillée des connaissances Javascript Objects_Basic

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2016-05-16 16:37:30
original
1366 Les gens l'ont consulté

Créer un objet

•Quantité directe de l'objet

var o = {
 foo : "bar"
 }
 
Copier après la connexion

•Constructeur

var o = new Object();
 
Copier après la connexion

•Héritage prototype

var p = Object.create(o);
 
Copier après la connexion

Héritage de classe

Les objets Javascript ont leurs propres propriétés et propriétés héritées.

•Lors de l'interrogation de l'attribut x de l'objet o, recherchez d'abord l'attribut x dans o. S'il n'est pas trouvé, recherchez l'attribut x dans l'objet prototype de o jusqu'à ce que x ou un objet dont le prototype est nul soit trouvé >.

•Lors de l'attribution d'une valeur à l'attribut x de l'objet o, si o a déjà un propre attribut x, modifiez la valeur de x si l'attribut x n'existe pas dans o, créez un attribut x pour o et attribuez-le. une valeur

•En d'autres termes, la chaîne de prototypes ne fonctionnera que lors des requêtes.

var O = {
 x : 1
 };
function P() {
 this.y = 2;
 }
P.prototype = O;
var t = new P();
 console.log(t);
 console.log('x' in t);//true
 console.log(t.hasOwnProperty('x'));//false
 
Copier après la connexion
Vous pouvez utiliser in ou hasOwnProperty pour déterminer s'il existe une propriété dans l'objet.

Propriétés de l'objet

•Propriétés des objets de parcours


Vous pouvez utiliser for..in pour parcourir les propriétés d'un objet

Lors de l'utilisation de for..in, les propriétés de la chaîne de prototypes seront parcourues. L'ordre de parcours est le parcours en largeur d'abord

Ainsi, en utilisant hasOwnProperty, vous pouvez déterminer s'il s'agit de la propre propriété de l'objet.

•Caractéristiques des attributs des objets


Utilisez Object.getOwnPropertyDescriptor() pour obtenir le descripteur d'une propriété spécifique d'un objet

Writable (inscriptible) indique si les propriétés de l'objet sont accessibles en écriture

Par exemple


var o = {
  foo : 'bar'
}
Object.defineProperty(o, "foo", { writable : false });
o.foo = 'world';
console.log(o.foo);//仍然输出bar
Copier après la connexion
Enumerable indique si les propriétés de l'objet sont énumérables

Par exemple

L'énumérable des attributs tels que la longueur dans Array est faux, donc,

for (p in Array) {
  console.log(p);
}
Copier après la connexion
Ne produit rien

Configurabilité (configurable) indique la configurabilité et l'énumération des propriétés qui peuvent être modifiées

Ces propriétés de configuration peuvent être définies à l'aide de Object.defineProperties.

Object.defineProperty(o, "foo", { writable : false });

Get représente la méthode d'obtention des propriétés d'un objet

Set représente une méthode de définition des propriétés d'un objet

Exemple


var book = {
  _year: 2004,
  edition: 1
};
Object.defineProperty(book, "year", {
  get: function () {
    console.log('get year');
    return this._year;
  },
  set: function (newValue) {
    console.log('set year');
    if (newValue > 2004) {
      this._year = newValue;
      this.edition += newValue - 2004;
    }
  }
});
book.year = 2005;//控制台输出‘set year'
console.log(book.year);//控制台输出‘get year'和year的值
Copier après la connexion

Méthodes objets

toString convertit l'objet en chaîne. La conversion par défaut sera quelque chose comme [object Object], donc si vous devez le convertir au format json, vous pouvez utiliser JSON.stringify

valueOf est utilisé lorsque les objets doivent être convertis en d'autres types. Encore une fois, il n'y a pas grand chose à dire sur la conversion par défaut.



Objet exécutable

Un objet exécutable peut être créé via les méthodes suivantes


function bar(o) {
  var f = function() { return "Hello World!"; }
  o.__proto__ = f.__proto__;
  f.__proto__ = o;
  return f;
}
var o = { x: 5 };
var foo = bar(o);
console.log(foo());
console.log(foo.x);
console.log(typeof foo);//function
Copier après la connexion
peut être utilisé comme objet (avec une chaîne de prototypes), ou comme fonction à appeler directement

Étiquettes associées:
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
Derniers numéros
c++ appelle javascript
Depuis 1970-01-01 08:00:00
0
0
0
Qu’est-ce que le garbage collection JavaScript ?
Depuis 1970-01-01 08:00:00
0
0
0
Que sont les fonctions de hook JavaScript ?
Depuis 1970-01-01 08:00:00
0
0
0
Comment obtenir la date actuelle en JavaScript ?
Depuis 1970-01-01 08:00:00
0
0
0
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal