Maison > Article > interface Web > Deux façons différentes de créer des classes et des objets dans les connaissances JS_Basic
En JavaScript, lorsque vous définissez une nouvelle fonction, vous déclarez en fait une nouvelle classe, et la fonction elle-même est équivalente au constructeur de la classe. Le code suivant vous montre deux manières différentes de créer une nouvelle classe Person, et la définition de Person.prototype suit la définition de la fonction.
var Person = function(name) { // 一个匿名函数, 并将这个函数赋值给一个Person变量, 此时Person成为一个类 this.name = name; } function Person(name) { // 直接定义一个叫做Person的函数表示Person类 this.name = name; } Person.prototype = { // 定义Person的prototype域 printName: function() { // 定义一个print函数 alert(this.name); } }
Après avoir déclaré une classe via une fonction, vous pouvez instancier la classe via l'opérateur new. De cette façon, vous pouvez appeler les fonctions membres de la classe pour compléter votre logique.
var person = new Person("Joe Smith"); // 使用new操作符来新建一个Person的实例, 并赋给变量person person.printName(); // person就可以看作是一个实例的引用(reference), 所以可以通过这个引用来调用Person类中的成员函数
Résumons l'ensemble du processus et les étapes de création d'une instance d'une nouvelle classe :
1. Déclarez une nouvelle classe en définissant une fonction (anonyme ou avec un vrai nom
).
2. Si nécessaire, définissez le champ prototype de cette nouvelle classe
.
3. Utilisez l'opérateur new suivi de la fonction que vous définissez pour créer une nouvelle instance de classe. Une fois que le compilateur JavaScript rencontre l'opérateur new, il crée en fait une variable d'instance de classe vide.
4. Copiez toutes les propriétés et méthodes du champ prototype de cette classe vers cette nouvelle instance et pointez tous ces pointeurs dans ses fonctions membres vers cette instance nouvellement créée
.
5. Ensuite, exécutez la fonction immédiatement après le nouvel opérateur
.
6. Lorsque vous exécutez cette fonction, si vous essayez d'attribuer une valeur à une propriété qui n'existe pas, le compilateur JavaScript créera automatiquement la propriété pour vous dans le cadre de cette instance
.
7. Une fois la fonction exécutée, renvoyez l'instance initialisée.
Dans Prototype, en utilisant l'objet Class, vous pouvez déclarer un nouvel objet de manière relativement simple. En utilisant Class.create(), le prototype crée une fonction constructeur par défaut initialize() pour vous. Une fois que vous avez implémenté cette fonction, vous pouvez créer une nouvelle instance de la classe d'une manière similaire à la fonction constructeur en Java.