최근에 자바 스크립트를 배우기 시작했고 몇 가지 중요한 개념을 고수하려고합니다. 지금까지 내 이해에 따라 자바 스크립트에는 클래스가 없으므로 클래스 대신 생성자 함수를 사용하여 객체의 청사진을 만듭니다. 예 : 우리는 그 클래스 객체에 대한 청사진을 만드는 클래스를 가지고 있기 때문에자바 생성자 함수 대 Typescript 클래스
// javascript code
var Car = function() {
// this is a private variable
var speed = 10;
// these are public methods
this.accelerate = function(change) {
speed += change;
};
this.decelerate = function() {
speed -= 5;
};
this.getSpeed = function() {
return speed;
};
};
// typescript code
class Car {
public speed: number = 10;
public acceleration(accelerationNumber: number): void {
this.speed += accelerationNumber;
}
public decelerate(decelerateNumber: number): void {
this.speed += decelerateNumber;
}
public getSpeed(): number {
return this.speed;
}
}
위의 타이프 스크립트 코드는 훨씬 더 의미가 있습니다. 그러나 Javascript에서이 청사진은 기능으로 생성됩니다. 그래서 Javascript에서 생성자 함수의 의미는 클래스가 Typescript/Java/etc에서하는 것과 같은 일을합니다.
두 개는 정확히 동일하지 않습니다. Javascript 버전은'prototype'을 사용하여 메소드를 정의하고'this.speed'에'speed '를 넣어야합니다. – deceze
예. 당신의 "클래스"는 int function() {}이 변형되어 new라는 키워드로 호출 될 것입니다. 이것은 문법 설탕과 같은 매끄러운 표현입니다. 그러나 ES6 수업에서는 표준으로 제공 될 것입니다 (설탕으로도 사용 가능). https://googlechrome.github.io/samples/classes-es6/ – Vitalii
"자바 클래스에는 클래스가 없습니다"- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes Are 당신은 말 그대로 또는 자바 스크립트 클래스의 구현이 다른 언어와 구조적으로 다르다는 것을 말하는가? – Zze