Maison  >  Article  >  interface Web  >  Quelle est la différence entre les constructeurs d'es6 et d'es5

Quelle est la différence entre les constructeurs d'es6 et d'es5

WBOY
WBOYoriginal
2022-04-25 17:48:012285parcourir

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.

Quelle est la différence entre les constructeurs d'es6 et d'es5

L'environnement d'exploitation de ce tutoriel : système Windows 10, ECMAScript version 6.0, ordinateur Dell G3.

Quelle est la différence entre les constructeurs d'es6 et d'es5 ?

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

. ES5

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"}

ES6

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!

Déclaration:
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