Différence : 1. Les variables de la classe dans le constructeur es6 ne seront pas promues, c'est-à-dire que l'objet ne peut être créé qu'après la définition de la classe, tandis que déclarer le constructeur dans es5 augmentera les variables ; Le constructeur ne peut pas être appelé directement dans es6, dans es5, vous pouvez appeler directement le constructeur et utiliser le constructeur comme une fonction ordinaire.
L'environnement d'exploitation de ce tutoriel : système Windows 10, ECMAScript version 6.0, ordinateur Dell G3.
Utilisez des constructeurs pour construire des objets réutilisables
Un constructeur est une fonction que vous construisez. C'est une méthode spéciale qui est qualitativement différente des fonctions ordinaires. Sa fonction est : Lors de la création. un objet, il est principalement utilisé pour initialiser l'objet, c'est-à-dire attribuer des valeurs initiales aux membres de l'objet. Les principales caractéristiques du constructeur sont le nom de la méthode, la première lettre est en majuscule et elle est utilisée avec new
function foo(){ this.name = 'Katherine'; this.age = '26'; } var f = new foo(); console.log(f) //Object console.log(f.name) //Katherine console.log(f.age) //26 function foos(name,age,sex){ this.name = name; this.age = age; this.sex = sex; } var f1 = new foos('Kathrine', '26', 'female'); var f2 = new foos('Stefan', '27', 'male'); var f3 = new foos('Damon', '29', 'male'); console.log(f1) //foos {name: "Kathrine", age: "26", sex: "female"} console.log(f2) //foos {name: "Stefan", age: "27", sex: "male"} console.log(f3) //foos {name: "Damon", age: "29", sex: "male"}
class foo{ constructor(){ this.name = 'Karherine'; this.age = '26'; } vampire(va){ console.log('Her name is '+this.name+' and she was '+this.age+' years old') } } let f = new foo() f.vampire(); //Her name is Karherine and she was 26 years old //继承原型 class foos extends foo{ constructor(){ super(); this.name = 'Stefan'; this.age = '27'; } } let f1 = new foos(); f1.vampire(); //His name is Stefan and he was 27 years old
1, ES5 peut utiliser new pour générer des objets, ou vous pouvez appeler directement le constructeur et l'utiliser comme une fonction normale. Par exemple, la fonction foo();
2. ES6 doit utiliser new pour générer des objets et ne peut pas appeler directement le constructeur pour l'utiliser comme une fonction normale.
Contrairement à ES5, les variables de classe ne seront pas promues, ce qui signifie que les objets ne peuvent être créés qu'après la définition de la classe.
Les appels de classe doivent utiliser new et les constructeurs ordinaires peuvent être utilisés comme fonctions ordinaires.
【Recommandations associées : tutoriel vidéo javascript, front-end web】
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!