>웹 프론트엔드 >JS 튜토리얼 >객체를 생성하고 상속을 구현하기 위해 JavaScript에서 'new' 키워드는 어떻게 작동합니까?

객체를 생성하고 상속을 구현하기 위해 JavaScript에서 'new' 키워드는 어떻게 작동합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-24 12:24:11992검색

How Does the `new` Keyword Work in JavaScript to Create Objects and Implement Inheritance?

JavaScript의 'new' 키워드 탐색

'new' 키워드 이해

자바스크립트에서 'new' 키워드는 객체 생성과 상속 개념에서 중추적인 역할을 합니다. JavaScript는 비객체 지향 언어라는 명성에도 불구하고 'new' 키워드를 통해 객체 기반 프로그래밍에 대한 독특한 접근 방식을 선보입니다.

'new' 키워드의 목적

'new' 키워드에는 몇 가지 중요한 역할이 있습니다.

  1. 객체 생성: 새 객체 생성을 시작합니다.
  2. 프로토타입 설정: 새로 생성된 객체의 내부 [[prototype]] 속성을 생성자 함수의 외부 프로토타입 객체로 설정합니다.
  3. 'this' 참조: 새로 생성된 변수에 'this' 변수를 할당합니다. object.
  4. 생성자 호출: 새로 생성된 개체를 컨텍스트로 사용하여 생성자 함수의 실행을 트리거합니다.
  5. 객체 반환: 생성자 함수가 null이 아닌 객체를 반환하지 않는 한 새로 생성된 객체를 반환합니다. 참고.

[[prototype]] 및 'prototype' 속성 이해

  • [[prototype]] 속성: 이 내부 속성은 모든 개체에 고유하며 개체의 프로토타입에 대한 참조를 저장합니다. 직접 수정할 수는 없지만 Object.getPrototypeOf()를 사용하여 액세스할 수 있습니다.
  • 'prototype' 속성: 이는 함수 개체에만 액세스할 수 있는 속성입니다. 함수를 생성자로 사용하여 생성된 모든 인스턴스가 공유할 프로토타입 객체에 대한 액세스를 허용합니다.

'new'를 사용한 객체 생성의 예

function ObjMaker() { this.a = 'first'; }
// 'ObjMaker' is the constructor function

ObjMaker.prototype.b = 'second';
// 'ObjMaker.prototype' is the prototype object

obj1 = new ObjMaker();
// 'new' creates a new 'obj1' object, assigns the prototype, and executes 'ObjMaker'

obj1.a; // 'first'
obj1.b; // 'second'
// 'obj1' inherits 'b' from 'ObjMaker.prototype' while still accessing its own property 'a'

상속 계층 구조 'new'

JavaScript는 'new' 키워드를 통해 프로토타입 기반 상속 모델을 허용합니다. [[prototype]] 속성을 설정하면 객체는 생성자의 프로토타입에서 속성과 메서드를 상속받습니다. 이를 통해 다음과 같이 기존 클래스를 확장하는 하위 클래스를 생성할 수 있습니다.

function SubObjMaker() {}
SubObjMaker.prototype = new ObjMaker(); // deprecated, use Object.create() now

SubObjMaker.prototype.c = 'third';
obj2 = new SubObjMaker();

obj2.c; // 'third'
obj2.b; // 'second'
obj2.a; // 'first'
// 'obj2' inherits 'c' from 'SubObjMaker.prototype', 'b' from 'ObjMaker.prototype', and 'a' from 'ObjMaker'

요약하면 JavaScript의 'new' 키워드는 객체 생성을 용이하게 할 뿐만 아니라 클래스 기반을 시뮬레이션하는 유연한 상속 메커니즘도 가능하게 합니다. 프로그래밍.

위 내용은 객체를 생성하고 상속을 구현하기 위해 JavaScript에서 'new' 키워드는 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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