Table des matières
super mot-clé
Opérateur d'extension d'objet
Maison interface Web js tutoriel Résumé des extensions et nouvelles méthodes des objets ES6 (avec exemples)

Résumé des extensions et nouvelles méthodes des objets ES6 (avec exemples)

Jan 11, 2019 am 11:02 AM
javascript

Le contenu de cet article est un résumé de l'expansion et des nouvelles méthodes des objets ES6 (avec des exemples). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

1. Représentation concise des attributs

ES6 permet d'écrire des variables et des fonctions directement sous forme d'attributs et de méthodes d'objets. Ce type d'écriture est plus concis.

const foo = 'bar';
const baz = {foo};
baz//{foo:'bar'}

//等同于
const baz = {foo:foo}
Copier après la connexion

Le code ci-dessus montre qu'ES6 permet d'écrire des variables directement dans des objets. À l'heure actuelle, le nom de l'attribut est le nom de la variable et la valeur de l'attribut est la valeur de la variable. Voici un autre exemple.

function f(x,y){
    return {x,y}
}
//等同于
function f(x,y){
    return {x:x,y:y};
}
f(1,2)//{x:1,y:2}
Copier après la connexion

En plus des abréviations d'attributs, les méthodes peuvent également être abrégées.

const o ={
    method(){
        return 'Hello!'
    }
}
//等同于
const o = {
    method:function(){
        return 'Hellow';
    }
}
Copier après la connexion

Voici un exemple pratique.

let birth = '2000/01/01';
const Person ={
    name:'张三',
    //等同于birth:birth
    birth,
    //等同于hello :function()....
    hello(){
        console.log('我的名字是',this.name) 
    }
}
Copier après la connexion

Cette façon d'écrire est très pratique pour la valeur de retour d'une fonction.

function getPoint(){
    const x =1;
    const y = 10;
    return {x,y}
}
getPoint()//{x:1,y:10}
Copier après la connexion

Le module CommonJS génère un ensemble de variables, ce qui est très approprié pour une écriture concise.

let ms = {};
function getItem(key){
    return key in ms ?ms[key]:null;
}
function setItem(key,value){
    ms[key] = value;
}
function clear(){
    ms={}
} 
module.exports = {getItem,setItem,clear};
//等同于
module.exports = {
    getItem:getItem,
    setItem:setItem,
    clearLclear
}
Copier après la connexion

L'assignateur (setter) et l'évaluateur (getter) de l'attribut sont en fait écrits de cette manière.

const cart = {
    _wheels:4,
    get wheels(){
        return this._wheels;
    },
    set wheels (value){
        if(value<this._wheels){
            throw new Error('数值太小了!');
        }
        this._whells = value;
    }
}
Copier après la connexion

2. Expression du nom de propriété

Il existe deux manières de définir les propriétés d'un objet en JavaScript.

//方法一
obj.foo = true;
//方法二
obj['a'+'bc'] = 123;
Copier après la connexion

La première méthode du code ci-dessus consiste à utiliser directement l'identifiant comme nom d'attribut, et la deuxième méthode consiste à utiliser l'expression comme nom d'attribut. Dans ce cas, placez l'expression dans un carré. parenthèses.
Cependant, si vous utilisez des littéraux pour définir des objets (à l'aide d'accolades), vous ne pouvez utiliser que la première méthode (identifiant) ​​pour définir des propriétés dans ES5.

var obj ={
    foo:true,
    abc:123
}
Copier après la connexion

Lorsque ES6 autorise la définition littérale d'un objet, utilisez la méthode 2 comme nom de propriété de l'objet, c'est-à-dire mettez l'expression entre parenthèses.

let propKey = 'foo';
let obj ={
    [propKey]:true,
    ['a'+'bc']:123
}
Copier après la connexion

Voici un autre exemple :

let lastWord = 'last word';
const a = {
    'first word':'hello',
    [lastWord]:'world'
};
a['first word']//hello
a[lastWord]//world
a['last word']//world
Copier après la connexion

Les expressions peuvent également être utilisées pour définir des noms de méthodes.

let obj = {
    ['h'+'ello'](){
        return 'hi'
    }
}
obj.hello()//hi;
Copier après la connexion

Remarque :

属性名表达式与简洁表示法,不能同时使用,会报错。
属性名表达式如果是一个对象,默认情况下会自动将对象转为字符串[object object],这一点要特别小心。
Copier après la connexion
const keyA = {a:1};
const keyB = {b:2};
const myObject = {
    [keyA]:'valueA',
    [keyB]:'valueB'
};
myObject;// Object {[object Object]: "valueB"}
Copier après la connexion

Dans le code ci-dessus, [keyA] et [keyB] obtiennent [object object], donc [keyB] changera [ keyA] est écrasé et myObject n'a finalement qu'un seul attribut [object object].

L'attribut name de la méthode

L'attribut name de la fonction renvoie le nom de la fonction. Les méthodes objets sont également des fonctions, elles ont donc également un attribut name.

const person = {
  sayName() {
    console.log('hello!');
  },
};

person.sayName.name   // "sayName"
Copier après la connexion

Type énumérable et parcours des attributs

Chaque attribut de l'objet a un objet de description, qui est utilisé pour contrôler le comportement de modification de l'attribut. La méthode Object.getOwnPropertyDescriptor(obj,'foo') peut obtenir l'objet de description de la propriété.
Décrit la propriété énumérable d'un objet, appelée énumérabilité. Si cette propriété est fausse, cela signifie que certaines opérations ignoreront la propriété actuelle.
Actuellement, quatre opérations ignorent les attributs dont l'énumérable est faux.

for...in循环:只遍历对象自身的和继承的可枚举的属性。(不包含Symbol属性)
Object.keys():返回对象自身的所有可枚举的属性的键名,返回一个数组。(不包含Symbol)
JSON.stringify():只串行化对象自身的可枚举的属性。
object.assign():忽略enumrable为false的属性,只拷贝对象自身的可枚举的属性。
Copier après la connexion

ES6 dispose d'un total de 5 méthodes pour parcourir les propriétés d'un objet.
(1) pour...dans

for...in循环遍历对象自身的和继承的可枚举属性(不包含Symbol属性)。
Copier après la connexion

(2) Object.keys(obj)

object.keys返回一个数组,包含对象自身的(不含继承的)所有可枚举属性(不包含Symbol属性)的键名。
Copier après la connexion

(3) Object.getOwnPropertyNames(obj)

返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性)的键名。
Copier après la connexion

(4) Object.getOwnPropertySymbols(obj)

返回一个数组,包含对象自身的所有Symbol属性的键名。
Copier après la connexion

(5) Reflect.ownKeys(obj)

Reflect.ownKeys返回一个数组,包含对象自身的所有键名,不管键名是Symbol或字符串,也不管是否可枚举。
Copier après la connexion

super mot-clé

Nous savons que le mot-clé this pointe toujours vers l'objet actuel où se trouve la fonction, et ES6 a ajouté un autre mot-clé similaire super, qui pointe vers l'objet prototype de l'objet actuel.

const proto = {
    foo:'hello'
};
const obj = {
    foo:'world',
    find(){
        return super.foo;
    }
};
Object.setPrototypeOf(obj,proto);
obj.find();//hello
Copier après la connexion

Dans le code ci-dessus, dans la méthode objet obj.find(), l'attribut foo du prototype d'objet proto est référencé via super.foo.
Remarque : lorsque le mot-clé super représente un objet prototype, il ne peut être utilisé que dans la méthode de l'objet. S'il est utilisé ailleurs, une erreur sera signalée. Actuellement, seule l'abréviation de la méthode objet permet au moteur Javascript de confirmer que la méthode objet est définie.
Dans le moteur JavaScript, super.foo est équivalent à Object.getPrototypeOf(this).foo ou Object.getPrototypeOf(this).foo.call(this).

Opérateur d'extension d'objet

Affectation de déstructuration
L'affectation de déstructuration d'un objet est utilisée pour obtenir la valeur d'un objet, qui est équivalente à tous les éléments traversables mais pas encore lus de l'objet cible lui-même Les attributs sont attribués à l'objet spécifié. Toutes les clés et leurs valeurs seront copiées dans le nouvel objet.

let{x,y,...z} = {x:1,y:2,a:3,b;4};
x//1,
y//2,
z//{a:3,b:4}
Copier après la connexion

Dans le code ci-dessus, la variable z est l'objet où se trouve l'affectation de déstructuration. Il prend toutes les clés non lues (a et b) à droite du signe égal et les copie avec leurs valeurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 pm 02:54 PM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 am 09:39 AM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne. À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ? WebSocket est une méthode full-duplex sur une seule connexion TCP.

Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Dec 17, 2023 pm 12:09 PM

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel Dec 17, 2023 pm 05:13 PM

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Comment utiliser insertBefore en javascript Comment utiliser insertBefore en javascript Nov 24, 2023 am 11:56 AM

Utilisation : En JavaScript, la méthode insertBefore() est utilisée pour insérer un nouveau nœud dans l'arborescence DOM. Cette méthode nécessite deux paramètres : le nouveau nœud à insérer et le nœud de référence (c'est-à-dire le nœud où le nouveau nœud sera inséré).

Comment obtenir facilement le code d'état HTTP en JavaScript Comment obtenir facilement le code d'état HTTP en JavaScript Jan 05, 2024 pm 01:37 PM

Introduction à la méthode d'obtention du code d'état HTTP en JavaScript : Dans le développement front-end, nous devons souvent gérer l'interaction avec l'interface back-end, et le code d'état HTTP en est une partie très importante. Comprendre et obtenir les codes d'état HTTP nous aide à mieux gérer les données renvoyées par l'interface. Cet article explique comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournit des exemples de code spécifiques. 1. Qu'est-ce que le code d'état HTTP ? Le code d'état HTTP signifie que lorsque le navigateur lance une requête au serveur, le service

See all articles