Maison interface Web js tutoriel Explication détaillée d'exemples d'objets Class pour démarrer avec ECMAScript6

Explication détaillée d'exemples d'objets Class pour démarrer avec ECMAScript6

Apr 28, 2017 am 10:01 AM

Cet article présente principalement l'introduction détaillée d'ECMAScript6 - Class object L'éditeur pense que c'est assez bon, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un coup d'œil.

Un signe des langages orientés objet est qu'ils ont tous le concept de classes, à travers lequel un nombre illimité d'objets avec les mêmes propriétés et méthodes peuvent être créés.

Il n'y a pas de concept de classe dans ECMAScript5, donc ses objets sont différents de ceux des langages basés sur les classes.

La manière traditionnelle de générer des objets en Javascript consiste à utiliser des constructeurs.

function Person(name, age){
  this.name = name;
  this.age = age;
  this.sayHello = function(){
    return "Hello "+ this.name;
  }
}

var person = new Person("dahan",18);
person.sayHello();
//Hello dahan
Copier après la connexion

Étant donné que la méthode ci-dessus est la même que la forme de déclaration des méthodes en Javascript, la distinction entre les objets et les méthodes n'est pas la même chose. Évidemment, il est facile de se tromper.

ES6 introduit le concept de Class (classe). Lorsque nous créons des objets via la syntaxe ES6, nous pouvons utiliser le mot-clé class pour définir des classes tout comme la syntaxe Java. Bien entendu, les fonctions de cette syntaxe peuvent également être réalisées via ES5. Cela rend simplement la définition des classes plus claire et plus facile à comprendre.

//类的定义
class Person {
  //ES6中新型构造器
  constructor(name) {
    this.name = name;
  }
  //实例方法
  sayName() {
    console.log("我的名字叫"+ this.name);
  }
}
//类的继承
class Programmer extends Person {
  constructor(name) {
    //直接调用父类构造器进行初始化
    super(name);
  }
  program() {
    cosnole.log("这是我的地盘");
  }
}
//运行测试
var person = new Person('lingxiao');
var coder = new Programmer('coder');

person.sayName();
//我的名字叫lingxiao
coder.sayName();
//我的名字叫coder
coder.program();
//这是我的地盘
Copier après la connexion

Faisons maintenant attention à la syntaxe qui apparaît dans le code ci-dessus.

constructeur

constructor est la méthode par défaut d'une classe, tout comme la méthode principale en Java, chaque classe doit avoir une méthode constructor. Lorsque

instancie un objet via new, il appellera automatiquement la méthode constructor et la valeur renvoyée est la valeur renvoyée par constructor. constructorPar défaut, l'objet instance de la classe actuelle est renvoyé (this), mais nous pouvons également spécifier un autre objet Bien sûr, cela fera que l'objet instancié ne sera pas une instance de la classe actuelle.

class Person {
  constructor(){
    var ob = new Object();
    return Ob;
  }
  sayHello(){
    return "Hello World"
  }
}
var person = new Person();
person.sayHello();
//Uncaught TypeError: person.sayHello is not a function
Copier après la connexion

Quand on instancie un objet, ES6 stipule que j'utilise le mot-clé new S'il est appelé directement, il sera appelé en fonction.

class Person {
  constructor(name){
    this.name = name;
  }
};
var person = Person("dahan");
//Uncaught TypeError: Class constructor Person4 cannot be invoked without 'new'
Copier après la connexion

this

Dans le premier code, on voit ceci, this dans la classe pointe vers l'instance elle-même, mais si nous This est utilisé dans la méthode . Lorsque cette méthode est appelée seule, une erreur se produit.

class Person{
  constructor(name){
    this.name = name;
  }
  sayHello() {
    return "Hello "+this.name
  }
}
var person = new Person("dahan");
var sayHello = person.sayHello;
sayHello();
//Uncaught TypeError: Cannot read property 'name' of undefined
Copier après la connexion

Pour cela, nous pouvons simplement lier dans le constructeur this

class Person{
  constructor(name){
    this.name = name;
    this.sayHello = this.sayHello.call(this);
  }
  sayHello() {
    return "Hello "+this.name
  }
}
Copier après la connexion

Hériter l'extension

Nous voulons Si vous le souhaitez étendre certains attributs sur une classe sans modifier la classe d'origine, vous utilisez l'héritage.

//类的继承
class Programmer extends Person {
  constructor(name,age) {
    this.age = age;//报错
    //直接调用父类构造器进行初始化
    super(name);
  }
  program() {
    cosnole.log("这是我的地盘");
  }
}
Copier après la connexion

Lorsque vous utilisez l'héritage, vous devez utiliser le mot-clé super pour appeler la classe parent super(name) appelez simplement la méthode constructor de la classe parent.

De plus, lorsque nous utilisons l'héritage, le mot-clé super nous aide également à changer le pointeur de this, nous devons donc d'abord appeler la méthode super avant de pouvoir utiliser this. ES6 exige que le constructeur d'une sous-classe exécute la fonction super une fois, sinon une erreur sera signalée.

Enfin, l'émergence du mot-clé

class fait également ressembler Javascript davantage à un langage orienté objet. J'espère que Javascript deviendra meilleur et plus facile à utiliser. .

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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 utiliser les classes et les méthodes en Python Comment utiliser les classes et les méthodes en Python Apr 21, 2023 pm 02:28 PM

Concepts et instances de classes et méthodes Classe (Class) : utilisé pour décrire une collection d'objets avec les mêmes propriétés et méthodes. Il définit les propriétés et méthodes communes à chaque objet de la collection. Les objets sont des instances de classes. Méthode : Fonction définie dans la classe. Méthode de construction de classe __init__() : La classe possède une méthode spéciale (méthode de construction) nommée init(), qui est automatiquement appelée lorsque la classe est instanciée. Variables d'instance : dans la déclaration d'une classe, les attributs sont représentés par des variables. Ces variables sont appelées variables d'instance. Une variable d'instance est une variable modifiée avec self. Instanciation : Créez une instance d'une classe, un objet spécifique de la classe. Héritage : c'est-à-dire qu'une classe dérivée (derivedclass) hérite de la classe de base (baseclass)

Remplacer le nom de classe d'un élément à l'aide de jQuery Remplacer le nom de classe d'un élément à l'aide de jQuery Feb 24, 2024 pm 11:03 PM

jQuery est une bibliothèque JavaScript classique largement utilisée dans le développement Web. Elle simplifie les opérations telles que la gestion des événements, la manipulation des éléments DOM et l'exécution d'animations sur les pages Web. Lorsque vous utilisez jQuery, vous rencontrez souvent des situations dans lesquelles vous devez remplacer le nom de classe d'un élément. Cet article présentera quelques méthodes pratiques et des exemples de code spécifiques. 1. Utilisez les méthodes RemoveClass() et AddClass(). JQuery fournit la méthode RemoveClass() pour la suppression.

Que signifie la classe en python ? Que signifie la classe en python ? May 21, 2019 pm 05:10 PM

Class est un mot-clé en python, utilisé pour définir une classe. La méthode de définition d'une classe : ajoutez un espace après la classe puis ajoutez le nom de la classe ; règles de nom de classe : mettez la première lettre en majuscule, utilisez la casse camel. nommage, tel que [class Dog()].

Explication détaillée de l'utilisation de la classe PHP : rendez votre code plus clair et plus facile à lire Explication détaillée de l'utilisation de la classe PHP : rendez votre code plus clair et plus facile à lire Mar 10, 2024 pm 12:03 PM

Lors de l’écriture de code PHP, l’utilisation de classes est une pratique très courante. En utilisant des classes, nous pouvons encapsuler les fonctions et les données associées dans une seule unité, rendant le code plus clair, plus facile à lire et à maintenir. Cet article présentera en détail l'utilisation de PHPClass et fournira des exemples de code spécifiques pour aider les lecteurs à mieux comprendre comment appliquer des classes pour optimiser le code dans des projets réels. 1. Créer et utiliser des classes En PHP, vous pouvez utiliser le mot-clé class pour définir une classe et définir les propriétés et méthodes de la classe.

Erreur Vue : impossible d'utiliser v-bind pour lier correctement la classe et le style, comment le résoudre ? Erreur Vue : impossible d'utiliser v-bind pour lier correctement la classe et le style, comment le résoudre ? Aug 26, 2023 pm 10:58 PM

Erreur Vue : impossible d'utiliser v-bind pour lier correctement la classe et le style, comment le résoudre ? Dans le développement de Vue, nous utilisons souvent la directive v-bind pour lier dynamiquement la classe et le style, mais nous pouvons parfois rencontrer des problèmes, comme l'incapacité d'utiliser correctement v-bind pour lier la classe et le style. Dans cet article, je vais vous expliquer la cause de ce problème et vous proposer une solution. Tout d’abord, comprenons la directive v-bind. v-bind est utilisé pour lier V

Comment déterminer si un élément a une classe en jquery Comment déterminer si un élément a une classe en jquery Mar 21, 2023 am 10:47 AM

Comment jquery détermine si un élément a une classe : 1. Déterminez si un élément a une certaine classe via la méthode "hasClass('classname')" 2. Déterminez si un élément a une certaine classe via la méthode "is('.classname) ; ')" méthode.

Comment SpringBoot chiffre et protège les fichiers de classe via un chargeur de classe personnalisé Comment SpringBoot chiffre et protège les fichiers de classe via un chargeur de classe personnalisé May 11, 2023 pm 09:07 PM

Contexte Récemment, les codes commerciaux clés ont été cryptés pour le cadre de l'entreprise afin d'empêcher la restauration facile du code d'ingénierie via des outils de décompilation tels que jd-gui. La configuration et l'utilisation du schéma d'obscurcissement associé sont relativement complexes et posent de nombreux problèmes. projet springboot, donc les fichiers de classe sont chiffrés puis transmis. Le classloder personnalisé est déchiffré et chargé. Cette solution n'est pas absolument sûre. Elle ne fait qu'augmenter la difficulté de la décompilation. Elle empêche les messieurs mais pas les méchants. dans la figure ci-dessous. Le plug-in maven chiffre la compilation à l'aide d'un plug-in maven personnalisé. Le fichier de classe spécifié est chiffré et le fichier de classe chiffré est copié ici dans le chemin spécifié.

Comment résoudre l'erreur '[Vue warn]: v-bind:class/ :class' Comment résoudre l'erreur '[Vue warn]: v-bind:class/ :class' Aug 26, 2023 am 08:17 AM

Comment résoudre l'erreur « [Vuewarn]:v-bind:class/:class » Au cours du processus de développement de l'utilisation de Vue, nous rencontrons souvent des invites d'erreur. L'une des erreurs courantes est « [Vuewarn]:v-bind:class. Erreur "/:classe". Ce message d'erreur apparaît généralement lorsque nous utilisons l'attribut v-bind:class ou :class, indiquant que Vue ne peut pas analyser correctement la valeur de classe que nous avons définie. Alors, si

See all articles