


Résumé des extensions et nouvelles méthodes des objets ES6 (avec exemples)
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}
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}
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'; } }
Voici un exemple pratique.
let birth = '2000/01/01'; const Person ={ name:'张三', //等同于birth:birth birth, //等同于hello :function().... hello(){ console.log('我的名字是',this.name) } }
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}
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 }
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; } }
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;
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 }
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 }
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
Les expressions peuvent également être utilisées pour définir des noms de méthodes.
let obj = { ['h'+'ello'](){ return 'hi' } } obj.hello()//hi;
Remarque :
属性名表达式与简洁表示法,不能同时使用,会报错。 属性名表达式如果是一个对象,默认情况下会自动将对象转为字符串[object object],这一点要特别小心。
const keyA = {a:1}; const keyB = {b:2}; const myObject = { [keyA]:'valueA', [keyB]:'valueB' }; myObject;// Object {[object Object]: "valueB"}
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"
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的属性,只拷贝对象自身的可枚举的属性。
ES6 dispose d'un total de 5 méthodes pour parcourir les propriétés d'un objet.
(1) pour...dans
for...in循环遍历对象自身的和继承的可枚举属性(不包含Symbol属性)。
(2) Object.keys(obj)
object.keys返回一个数组,包含对象自身的(不含继承的)所有可枚举属性(不包含Symbol属性)的键名。
(3) Object.getOwnPropertyNames(obj)
返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性)的键名。
(4) Object.getOwnPropertySymbols(obj)
返回一个数组,包含对象自身的所有Symbol属性的键名。
(5) Reflect.ownKeys(obj)
Reflect.ownKeys返回一个数组,包含对象自身的所有键名,不管键名是Symbol或字符串,也不管是否可枚举。
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
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}
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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 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 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.

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 : 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 : 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

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é).

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
