>웹 프론트엔드 >프런트엔드 Q&A >es6과 es5 생성자의 차이점은 무엇입니까

es6과 es5 생성자의 차이점은 무엇입니까

WBOY
WBOY원래의
2022-04-25 17:48:012379검색

차이점: 1. es6 생성자의 클래스 변수는 승격되지 않습니다. 즉, 객체는 클래스 정의 후에만 생성될 수 있지만 es5에서 생성자를 선언하면 변수가 발생합니다. es6에서는 생성자를 직접 호출할 수 없지만 es5에서는 생성자를 직접 호출하여 생성자를 일반 함수로 사용할 수 있습니다.

es6과 es5 생성자의 차이점은 무엇입니까

이 튜토리얼의 운영 환경: Windows 10 시스템, ECMAScript 버전 6.0, Dell G3 컴퓨터.

es6과 es5의 생성자의 차이점은 무엇입니까?

생성자를 사용하여 재사용 가능한 객체를 생성하세요
생성자는 사용자가 생성하는 함수입니다. 일반 함수와는 질적으로 다른 특별한 방법입니다. 객체를 초기화하는데 주로 사용되는데, 이는 객체 멤버에 초기값을 할당하는 것입니다. 생성자의 주요 특징은 메소드 이름이며 첫 글자를 대문자로 사용하며 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에서는 new를 사용하여 객체를 생성하거나 생성자를 직접 호출하여 일반 함수로 사용할 수 있습니다. 예를 들어 function foo();

2. ES6에서는 객체를 생성하기 위해 new를 사용해야 하며, 이를 일반 함수로 사용하기 위해 생성자를 직접 호출할 수 없습니다.

ES5와 달리 클래스 변수는 승격되지 않습니다. 즉, 클래스가 정의된 후에만 객체를 생성할 수 있습니다.

클래스 호출은 반드시 new를 사용해야 하며, 일반 생성자를 일반 함수처럼 사용할 수 있습니다.

【관련 추천: javascript 비디오 튜토리얼, web front-end

위 내용은 es6과 es5 생성자의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.