JavaScript 클래스의 정의 및 인스턴스화
클래스 정의
엄밀히 말하면 JavaScript는 객체지향 프로그래밍 언어가 아닌 객체 기반 프로그래밍 언어입니다.
객체 지향 프로그래밍 언어(Java, C++, C#, PHP 등)에서는 class 키워드를 사용하여 클래스를 선언합니다.
예: public class Person{}
그러나 JavaScript에는 클래스를 선언하는 키워드가 없고 클래스의 액세스 권한을 제어할 방법이 없습니다.
JavaScript는 함수를 사용하여 클래스를 정의합니다.
구문:
function className(){
// 특정 작업
}
예를 들어 Person 클래스를 정의합니다.
function Person() { this.name=" 张三 "; // 定义一个属性 name this.sex=" 男 "; // 定义一个属性 sex this.say=function(){ // 定义一个方法 say() document.write("嗨!大家好,我的名字是 " + this.name + " ,性别是 " + this.sex + "。"); } }
설명: 이 키워드는 현재 개체를 나타냅니다.
객체 생성(클래스 인스턴스화)
객체 생성 과정은 클래스 인스턴스화 과정이기도 합니다.
JavaScript에서 객체 생성(예: 클래스 인스턴스화)에는 new 키워드가 사용됩니다.
구문:
new className();
위의 Person 클래스를 인스턴스화합니다.
var zhangsan=new Person(); zhangsan.say();
코드를 실행하고 다음 내용을 출력합니다.
안녕하세요! 안녕하세요 여러분. 제 이름은 Zhang San이고 성별은 남성입니다.
클래스를 정의할 때 매개변수를 설정할 수 있고, 객체 생성 시 해당 매개변수를 전달할 수도 있습니다.
다음으로 Person 클래스를 재정의합니다.
function Person(name,sex) { this.name=name; // 定义一个属性 name this.sex=sex; // 定义一个属性 sex this.say=function(){ // 定义一个方法 say() document.write("嗨!大家好,我的名字是 " + this.name + " ,性别是 " + this.sex); } } var zhangsan=new Person("小丽","女"); zhangsan.say();
코드를 실행하면 다음 출력이 출력됩니다.
안녕하세요! 안녕하세요 여러분. 제 이름은 Xiaoli이고 성별은 여성입니다.