ECMAScript6을 시작하기 위한 클래스 객체의 예에 대한 자세한 설명
이 글은 주로 ECMAScript6 - Class 객체에 대한 자세한 소개를 소개합니다. 편집자가 꽤 좋다고 생각해서 이제 공유하고 참고용으로 올려보겠습니다. 편집기를 따라가서 살펴보겠습니다.
객체지향 언어의 한 가지 특징은 모두 클래스 개념을 가지고 있으며 이를 통해 동일한 속성과 메서드를 가진 객체를 얼마든지 생성할 수 있다는 것입니다.
ECMAScript5에는 클래스 개념이 없으므로 클래스 기반 언어의 개체와 개체가 다릅니다.
Javascript에서 객체를 생성하는 전통적인 방법은 생성자를 통해 이루어졌습니다.
function Person(name, age){ this.name = name; this.age = age; this.sayHello = function(){ return "Hello "+ this.name; } } var person = new Person("dahan",18); person.sayHello(); //Hello dahan
위 메소드는 Javascript에서 메소드를 선언하는 형태와 동일하기 때문에 객체와 메소드의 구분이 명확하지 않습니다. 혼란스러워지기 쉽습니다.
ES6에서는 Class
(클래스) 개념을 도입했습니다. ES6 구문을 통해 객체를 생성할 때 class
키워드를 사용하여 Java 구문과 마찬가지로 클래스를 정의할 수 있습니다. 물론 이 구문의 기능은 ES5를 통해서도 구현될 수 있습니다. 이는 클래스 정의를 더 명확하고 이해하기 쉽게 만듭니다.
//类的定义 class Person { //ES6中新型构造器 constructor(name) { this.name = name; } //实例方法 sayName() { console.log("我的名字叫"+ this.name); } } //类的继承 class Programmer extends Person { constructor(name) { //直接调用父类构造器进行初始化 super(name); } program() { cosnole.log("这是我的地盘"); } } //运行测试 var person = new Person('lingxiao'); var coder = new Programmer('coder'); person.sayName(); //我的名字叫lingxiao coder.sayName(); //我的名字叫coder coder.program(); //这是我的地盘
이제 위 코드에 나타나는 구문에 주목해 보겠습니다.
constructor
constructor
는 클래스의 기본 메서드입니다. Java의 기본 메서드와 마찬가지로 모든 클래스에는 constructor
메서드가 있어야 합니다.
이 new
을 통해 객체를 인스턴스화하면 자동으로 constructor
메서드를 호출하고 반환되는 값은 constructor
에서 반환하는 값입니다. constructor
기본적으로 현재 클래스의 인스턴스 객체가 반환되지만(this)
, 물론 다른 객체를 지정할 수도 있습니다. 이렇게 하면 인스턴스화된 객체가 현재 클래스의 인스턴스가 아닙니다.
class Person { constructor(){ var ob = new Object(); return Ob; } sayHello(){ return "Hello World" } } var person = new Person(); person.sayHello(); //Uncaught TypeError: person.sayHello is not a function
객체를 인스턴스화할 때 ES6에서는 new 키워드를 사용하도록 규정합니다. 객체를 직접 호출하면 함수로 호출됩니다.
class Person { constructor(name){ this.name = name; } }; var person = Person("dahan"); //Uncaught TypeError: Class constructor Person4 cannot be invoked without 'new'
this
첫 번째 코드에서 보면 클래스의 this가 인스턴스 자체를 가리키지만 클래스의 메서드에 있는 경우 If 이 메소드를 단독으로 호출하면 오류가 발생합니다.
class Person{ constructor(name){ this.name = name; } sayHello() { return "Hello "+this.name } } var person = new Person("dahan"); var sayHello = person.sayHello; sayHello(); //Uncaught TypeError: Cannot read property 'name' of undefined
이를 위해 간단히 바인딩 this
class Person{ constructor(name){ this.name = name; this.sayHello = this.sayHello.call(this); } sayHello() { return "Hello "+this.name } }
inherit extend
클래스에 속해 일부 속성을 확장하고 싶지만 Done 원래 클래스를 수정하고 싶지 않아 상속이 사용됩니다.
//类的继承 class Programmer extends Person { constructor(name,age) { this.age = age;//报错 //直接调用父类构造器进行初始化 super(name); } program() { cosnole.log("这是我的地盘"); } }
상속을 사용할 때는 super
키워드를 사용하여 상위 클래스를 호출해야 합니다. super(name)
상위 클래스의 constructor
메서드를 호출하면 됩니다.
또한 상속을 사용할 때 super
키워드는 this
의 포인터를 변경하는 데에도 도움이 되므로 super
을 사용하기 전에 먼저 this
메서드를 호출해야 합니다. ES6에서는 하위 클래스의 생성자가 super
함수를 한 번 실행해야 하며, 그렇지 않으면 오류가 보고됩니다.
마지막으로
class
키워드의 등장으로 Javascript도 좀 더 객체 지향 언어처럼 보이도록 만들어졌으면 좋겠습니다. .
위 내용은 ECMAScript6을 시작하기 위한 클래스 객체의 예에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











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

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

클래스는 클래스를 정의하는 데 사용되는 키워드입니다. 클래스 뒤에 공백을 추가하고 클래스 이름을 추가합니다. 규칙: 첫 글자가 여러 개인 경우 카멜 표기법을 사용합니다. [class Dog()]와 같은 이름 지정.

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

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

배경 최근에는 jd-gui 등의 디컴파일 도구를 통해 엔지니어링 코드를 쉽게 복원하는 것을 방지하기 위해 회사 프레임워크에 대해 주요 비즈니스 코드를 암호화하고 있습니다. 관련 난독화 기법의 구성 및 사용이 상대적으로 복잡하고, springboot 프로젝트이므로 클래스 파일이 암호화된 후 사용자 정의 클래스로더가 해독되고 로드됩니다. 이 솔루션은 디컴파일의 난이도만 증가시키지만 전반적인 암호화 보호 흐름도는 표시되지 않습니다. 아래 그림에서 Maven 플러그인은 사용자 정의 Maven 플러그인을 사용하여 컴파일을 암호화하며, 암호화된 클래스 파일은 지정된 경로에 복사됩니다.

jquery가 요소에 클래스가 있는지 확인하는 방법: 1. "hasClass('classname')" 메서드를 통해 요소에 특정 클래스가 있는지 확인합니다. 2. "is('.classname)을 통해 요소에 특정 클래스가 있는지 확인합니다. ')" 방법.
!['[Vue 경고]: v-bind:class/ :class' 오류 해결 방법](https://img.php.cn/upload/article/000/465/014/169300902772563.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
"[Vuewarn]:v-bind:class/:class" 오류를 해결하는 방법 Vue를 사용하는 개발 과정에서 흔히 발생하는 오류 중 하나는 "[Vuewarn]:v-bind:class입니다. " /:클래스" 오류. 이 오류 메시지는 일반적으로 v-bind:class 또는 :class 속성을 사용할 때 나타납니다. 이는 Vue가 우리가 설정한 클래스 값을 올바르게 구문 분석할 수 없음을 나타냅니다. 그렇다면 만약
