>  기사  >  웹 프론트엔드  >  JavaScript의 객체

JavaScript의 객체

Patricia Arquette
Patricia Arquette원래의
2024-11-19 08:50:03144검색

Objetos em JavaScript

저는 JavaScript 개념에 대한 일련의 게시물을 시작하고 있으며 이는 시작에 불과합니다. 첫 번째 게시물에서는 JavaScript의 데이터 구조가 어떻게 작동하는지 이해하는 데 필수적인 객체의 기본 개념을 살펴보겠습니다.

이 기사와 기타 여러 주제가 이어지는 다음 게시물을 계속 지켜봐 주시기 바랍니다.


객체란 무엇입니까?

실제 세계에서 객체는 실체(실제 또는 추상)입니다. 예: 연필, 자동차, 노트북. 이러한 각 개체에는 특정 속성이 있습니다. 예: 파란색 자동차, 빨간색 연필 또는 큰 공책.

JavaScript에서 객체는 속성을 수집하는 독립적인 개체입니다. 속성은 이름과 값, 즉 개체를 설명하는 정보 간의 연결입니다.

이 예에서 색상과 크기는 자동차 객체의 속성이며 각각 연관된 값을 갖습니다.

객체 생성

리터럴 구문

리터럴 객체는 간단하고 직접적인 방법으로 생성되며 값은 이미 수동으로 정의됩니다. 이 구문은 객체에 대한 고정된 속성 집합이 있을 때 이상적입니다.

이 유형의 객체는 속성이 자주 변경되지 않거나 고정된 값을 가진 객체를 빠르게 생성해야 할 때 유용합니다.

생성자 함수

생성자 함수는 특히 여러 유사한 객체가 필요할 때 객체를 동적으로 생성하는 데 사용됩니다. new 키워드를 사용하면 생성자 함수를 참조하는 새 객체가 생성됩니다.

좀 더 전통적이고 학문적이지 않은 예:

이 경우 출력은 Person 함수에 의해 규정된 모델의 person1 및 person2 변수에 의해 할당된 값으로 "Stamped"됩니다.

이 단어의 사용

생성자 내에서 생성되는 객체를 참조하기 위해 this 키워드를 사용합니다. 이를 통해 객체의 동적 속성과 메서드를 정의할 수 있습니다.

예를 들어 위 코드에서 this.name과 this.age는 객체의 속성을 정의하고, Greeting 메소드는 객체와 연관된 함수입니다.

생성자의 상속

JavaScript의 상속은 프로토타입을 통해 작동합니다. 한 개체를 다른 개체에서 직접 만드는 대신 한 개체가 다른 개체에서 속성과 메서드를 상속할 수 있는 계층 구조를 만듭니다. 이는 호출 또는 적용 메소드를 사용하여 수행됩니다.

상속은 어떻게 작동하나요?

Pessoa.call(this, nome)을 사용하면 Pessoa 생성자를 호출하고 Student 개체의 컨텍스트를 전달합니다. 이로 인해 Student1 개체는 Person으로부터 name 속성을 상속받고 Student 함수에만 적용되는 age 속성도 갖게 됩니다.

생성자 함수는 변수 값이 포함된 많은 속성과 메서드를 포함하는 여러 객체를 생성해야 할 때 가장 많이 사용됩니다. 이 경우 여러 객체를 수동으로 작성하는 것보다 생성자 객체를 "스탬프"로 사용하는 것이 좋습니다.

생성자 객체

생성자 함수를 사용하여 생성된 객체는 new 연산자에 의해 생성된 인스턴스입니다. 각 인스턴스에는 고유한 속성이 있지만 생성자 함수의 프로토타입에 정의된 메서드를 공유합니다.

즉, 생성자 함수에서 여러 객체를 생성하면 메소드는 동일하지만 속성 값이 다릅니다.

  • 이 경우 new 연산자는 새 객체를 생성하고 컨텍스트(this)를 생성자 함수에 바인딩합니다

  • 공유 메소드의 경우 생성자 함수의 프로토타입을 추가하는 것이 더 효율적입니다. 이렇게 하면 메모리 중복이 방지됩니다.

생성자 함수의 프로토타입에 메서드를 정의함으로써 코드 중복을 피할 수 있습니다. 각 개체가 메서드 복사본을 갖는 대신 모두 동일한 메서드를 공유하여 메모리를 절약합니다.

new 연산자는 새 객체를 생성하고 컨텍스트(this)를 생성자 함수에 바인딩합니다.

공유 메소드의 경우 메모리 중복을 방지하기 위해 생성자 함수의 프로토타입에 추가하는 것이 더 효율적입니다.

위 내용은 JavaScript의 객체의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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