웹 프론트엔드 프런트엔드 Q&A ES6에서는 클래스를 어떻게 정의하나요?

ES6에서는 클래스를 어떻게 정의하나요?

Mar 09, 2022 pm 06:52 PM
class es6 친절한

ES6에서는 객체에 대한 템플릿으로 클래스(class)가 도입되었으며, "class" 키워드를 통해 클래스를 정의할 수 있습니다. 클래스의 본질은 함수입니다. 이는 구문 설탕으로 간주될 수 있으며 객체 프로토타입 작성을 더 명확하고 객체 지향 프로그래밍의 구문과 더 유사하게 만듭니다.

ES6에서는 클래스를 어떻게 정의하나요?

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

ES6 Class

ES6에서는 클래스(class)가 객체의 템플릿으로 도입되었으며 클래스는 "class" 키워드를 통해 정의할 수 있습니다.

수업의 본질은 기능입니다.

기본적으로 ES6 클래스는 단지 구문 설탕으로 간주될 수 있습니다. 대부분의 기능은 ES5에서 달성할 수 있습니다. 새로운 클래스 작성 방법은 객체 프로토타입의 작성 방법을 더 명확하고 객체 지향 프로그래밍의 구문과 더 유사하게 만듭니다. .

기본 사용법

클래스 정의

클래스 표현식은 익명이거나 이름이 지정될 수 있습니다.

// 匿名类
let Example = class {
    constructor(a) {
        this.a = a;
    }
}
// 命名类
let Example = class Example {
    constructor(a) {
        this.a = a;
    }
}
로그인 후 복사

클래스 선언

class Example {
    constructor(a) {
        this.a = a;
    }
}
로그인 후 복사

주의 사항: 반복 가능한 선언은 허용되지 않습니다.

class Example{}
class Example{}
// Uncaught SyntaxError: Identifier 'Example' has already been 
// declared
 
let Example1 = class{}
class Example{}
// Uncaught SyntaxError: Identifier 'Example' has already been 
// declared
로그인 후 복사

주의 사항:

클래스 정의는 승격되지 않습니다. 즉, 액세스하기 전에 클래스를 정의해야 하며 그렇지 않으면 오류가 보고됩니다.

클래스의 메서드에는 function 키워드가 필요하지 않습니다.

메소드 사이에는 세미콜론이 없습니다.

new Example(); 
class Example {}
로그인 후 복사

클래스 본문

Properties

prototype

ES6에서는 메소드가 클래스에서 직접 정의될 수 있지만 실제로는 프로토타입에 정의되어 있습니다. 초기화 시 메소드 재정의/메서드 추가

Example.prototype={
    //methods
}
로그인 후 복사

Add 메소드

Object.assign(Example.prototype,{
    //methods
})
로그인 후 복사

정적 속성

정적 속성: 클래스 자체의 속성, 즉 클래스 내부에 직접 정의된 속성(Class.propname)은 반드시 그럴 필요는 없습니다. 인스턴스화되었습니다. ES6에서는 Class 내부에 정적 메서드만 있고 정적 속성은 없다고 규정합니다.

class Example {
// 新提案
    static a = 2;
}
// 目前可行写法
Example.b = 2;
로그인 후 복사

공용 속성

class Example{}
Example.prototype.a = 2;
로그인 후 복사

인스턴스 속성

인스턴스 속성: 인스턴스 객체(this)에 정의된 속성입니다.

class Example {
    a = 2;
    constructor () {
        console.log(this.a);
    }
}
로그인 후 복사

name attribute

클래스 다음에 오는 클래스 이름을 반환합니다(존재하는 경우).

let Example=class Exam {
    constructor(a) {
        this.a = a;
    }
}
console.log(Example.name); // Exam
 
let Example=class {
    constructor(a) {
        this.a = a;
    }
}
console.log(Example.name); // Example
로그인 후 복사

method

constructor method

constructor 메서드는 클래스의 기본 메서드이며 클래스의 인스턴스화된 개체를 생성할 때 호출됩니다.

class Example{
    constructor(){
      console.log('我是constructor');
    }
}
new Example(); // 我是constructor
로그인 후 복사

반환 객체

class Test {
    constructor(){
        // 默认返回实例对象 this
    }
}
console.log(new Test() instanceof Test); // true
 
class Example {
    constructor(){
        // 指定返回对象
        return new Test();
    }
}
console.log(new Example() instanceof Example); // false
로그인 후 복사

정적 메소드

class Example{
    static sum(a, b) {
        console.log(a+b);
    }
}
Example.sum(1, 2); // 3
로그인 후 복사

프로토타입 메소드

class Example {
    sum(a, b) {
        console.log(a + b);
    }
}
let exam = new Example();
exam.sum(1, 2); // 3
로그인 후 복사

인스턴스 메소드

class Example {
    constructor() {
        this.sum = (a, b) => {
            console.log(a + b);
        }
    }
}
로그인 후 복사

클래스 인스턴스화

new

클래스는 다음을 통해 인스턴스화되어야 합니다. 새로운 키워드.

class Example {}
 
let exam1 = Example(); 
// Class constructor Example cannot be invoked without 'new'
로그인 후 복사

인스턴화된 객체

공유 프로토타입 객체

class Example {
    constructor(a, b) {
        this.a = a;
        this.b = b;
        console.log('Example');
    }
    sum() {
        return this.a + this.b;
    }
}
let exam1 = new Example(2, 1);
let exam2 = new Example(3, 1);
 
// __proto__ 已废弃,不建议使用
// console.log(exam1.__proto__ == exam2.__proto__); 
 
console.log(Object.getPrototypeOf(exam1) === Object.getPrototypeOf(exam2));// true
 
Object.getPrototypeOf(exam1).sub = function() {
    return this.a - this.b;
}
console.log(exam1.sub()); // 1
console.log(exam2.sub()); // 2
로그인 후 복사

[관련 권장 사항: javascript 비디오 튜토리얼, 웹 프론트 엔드]

위 내용은 ES6에서는 클래스를 어떻게 정의하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Python에서 클래스와 메서드를 사용하는 방법 Python에서 클래스와 메서드를 사용하는 방법 Apr 21, 2023 pm 02:28 PM

클래스와 메소드의 개념과 인스턴스 클래스(Class): 동일한 속성과 메소드를 가진 객체의 컬렉션을 설명하는 데 사용됩니다. 컬렉션의 모든 개체에 공통적인 속성과 메서드를 정의합니다. 객체는 클래스의 인스턴스입니다. 메소드: 클래스에 정의된 함수입니다. 클래스 구성 메서드 __init__(): 클래스에는 클래스가 인스턴스화될 때 자동으로 호출되는 init()라는 특수 메서드(구성 메서드)가 있습니다. 인스턴스 변수: 클래스 선언에서 속성은 변수로 표시됩니다. 이러한 변수를 인스턴스 변수라고 합니다. 인스턴스화: 클래스의 특정 개체인 클래스의 인스턴스를 만듭니다. 상속: 즉, 파생 클래스(derivedclass)가 기본 클래스(baseclass)를 상속합니다.

PHP의 명명 규칙: 클래스, 메소드 및 변수에 카멜 표기법을 사용하는 방법 PHP의 명명 규칙: 클래스, 메소드 및 변수에 카멜 표기법을 사용하는 방법 Jul 30, 2023 pm 02:43 PM

PHP의 명명 규칙: CamelCase 표기법을 사용하여 클래스, 메서드 및 변수의 이름을 지정하는 방법 PHP 프로그래밍에서 좋은 명명 규칙은 중요한 코딩 방법입니다. 코드 가독성과 유지 관리성이 향상되고 팀워크가 더욱 원활해집니다. 이 기사에서는 일반적인 명명 규칙인 camelCase를 살펴보고 이를 PHP에서 클래스, 메소드 및 변수 이름에 사용하는 방법에 대한 몇 가지 예를 제공합니다. 1. 카멜 케이스 명명법이란 무엇입니까? CamelCase는 각 단어의 첫 글자를 대문자로 표기하는 일반적인 명명 규칙입니다.

jQuery를 사용하여 요소의 클래스 이름 바꾸기 jQuery를 사용하여 요소의 클래스 이름 바꾸기 Feb 24, 2024 pm 11:03 PM

jQuery는 웹 개발에 널리 사용되는 클래식 JavaScript 라이브러리로, 이벤트 처리, DOM 요소 조작, 웹 페이지에서 애니메이션 수행과 같은 작업을 단순화합니다. jQuery를 사용할 때 요소의 클래스 이름을 바꿔야 하는 상황이 자주 발생합니다. 이 기사에서는 몇 가지 실용적인 방법과 구체적인 코드 예제를 소개합니다. 1. RemoveClass() 및 addClass() 메소드 사용 jQuery는 삭제를 위한 RemoveClass() 메소드를 제공합니다.

PHP 오류: 클래스를 반복적으로 선언할 수 없습니다. 해결 방법! PHP 오류: 클래스를 반복적으로 선언할 수 없습니다. 해결 방법! Aug 25, 2023 pm 04:13 PM

PHP 오류: 클래스를 반복적으로 선언할 수 없습니다. 해결 방법! 개발자가 문제에 직면하는 것은 흔한 일입니다. PHP 개발에서는 클래스를 반복적으로 선언할 수 없다는 일반적인 오류가 자주 발생합니다. 이 문제는 간단해 보이지만 시간 내에 해결하지 않으면 코드가 올바르게 실행되지 않습니다. 이 문서에서는 이 문제의 원인을 설명하고 참조할 수 있는 해결 방법을 제공합니다. PHP 코드에서 클래스를 정의할 때, 같은 파일 또는 여러 파일에 같은 클래스를 여러 번 정의하면 해당 클래스를 반복적으로 선언할 수 없다는 오류가 발생합니다. 이것은

PHP 클래스 사용법에 대한 자세한 설명: 코드를 더 명확하고 읽기 쉽게 만듭니다. PHP 클래스 사용법에 대한 자세한 설명: 코드를 더 명확하고 읽기 쉽게 만듭니다. Mar 10, 2024 pm 12:03 PM

PHP 코드를 작성할 때 클래스를 사용하는 것은 매우 일반적인 관행입니다. 클래스를 사용하면 관련 함수와 데이터를 단일 단위로 캡슐화하여 코드를 더 명확하고, 읽기 쉽고, 유지 관리하기 쉽게 만들 수 있습니다. 이 기사에서는 PHPClass의 사용법을 자세히 소개하고 구체적인 코드 예제를 제공하여 독자가 실제 프로젝트에 클래스를 적용하여 코드를 최적화하는 방법을 더 잘 이해할 수 있도록 돕습니다. 1. 클래스 생성 및 사용 PHP에서는 클래스 키워드를 사용하여 클래스를 정의하고 클래스의 속성과 메서드를 정의할 수 있습니다.

PHP의 패키징 기술 및 응용 PHP의 패키징 기술 및 응용 Oct 12, 2023 pm 01:43 PM

PHP의 캡슐화 기술과 애플리케이션 캡슐화는 객체 지향 프로그래밍에서 중요한 개념입니다. 이는 외부 프로그램에 대한 통합 액세스 인터페이스를 제공하기 위해 데이터와 데이터에 대한 작업을 함께 캡슐화하는 것을 의미합니다. PHP에서는 액세스 제어 수정자와 클래스 정의를 통해 캡슐화를 달성할 수 있습니다. 이 기사에서는 PHP의 캡슐화 기술과 해당 애플리케이션 시나리오를 소개하고 몇 가지 구체적인 코드 예제를 제공합니다. 1. 캡슐화된 액세스 제어 수정자 PHP에서 캡슐화는 주로 액세스 제어 수정자를 통해 이루어집니다. PHP는 세 가지 액세스 제어 수정자를 제공합니다.

Vue 오류: v-bind를 사용하여 클래스와 스타일을 올바르게 바인딩할 수 없습니다. 어떻게 해결합니까? Vue 오류: v-bind를 사용하여 클래스와 스타일을 올바르게 바인딩할 수 없습니다. 어떻게 해결합니까? Aug 26, 2023 pm 10:58 PM

Vue 오류: v-bind를 사용하여 클래스와 스타일을 올바르게 바인딩할 수 없습니다. 어떻게 해결합니까? Vue 개발에서는 클래스와 스타일을 동적으로 바인딩하기 위해 v-bind 지시문을 사용하는 경우가 많지만, 클래스와 스타일을 바인딩하기 위해 v-bind를 올바르게 사용하지 못하는 등의 문제가 발생할 수도 있습니다. 이번 글에서는 이 문제의 원인을 설명하고 해결 방법을 알려드리겠습니다. 먼저 v-bind 지시어를 이해해 봅시다. v-bind는 V를 바인딩하는 데 사용됩니다.

jquery에서 요소에 클래스가 있는지 확인하는 방법 jquery에서 요소에 클래스가 있는지 확인하는 방법 Mar 21, 2023 am 10:47 AM

jquery가 요소에 클래스가 있는지 확인하는 방법: 1. "hasClass('classname')" 메서드를 통해 요소에 특정 클래스가 있는지 확인합니다. 2. "is('.classname)을 통해 요소에 특정 클래스가 있는지 확인합니다. ')" 방법.

See all articles