JavaScript에서 super()
이해 :이 안내서는 부모 수업에서 상속하는 데 중점을 둔 JavaScript의 super()
키워드를 탐구합니다. JavaScript의 클래스 시스템은 프로토 타입 상속을 기반으로 구축되지만 super()
친숙한 클래스 기반 상속 구문을 제공합니다.
super()
키워드는 JavaScript에 고유하지 않습니다. Java 및 Python과 같은 언어는 참조 부모 클래스와 유사하게 사용합니다. 그러나 JavaScript의 접근 방식은 다릅니다. 그것은 클래스 기반 상속 동작을 모방하기 위해 프로토 타입 상속을 활용합니다. Mozilla의 문서화는 JavaScript 클래스가 기존 프로토 타입 기반 상속에 대해 "구문 설탕"이라고 강조합니다.
코드 예제로 설명하겠습니다. Fish
(부모)와 Trout
(어린이)의 두 가지 수업을 고려하십시오. Fish
에는 속성 habitat
와 length
있습니다. Trout
Fish
확장하여 variety
속성을 추가합니다.
수업 물고기 { 생성자 (서식지, 길이) { this.habitat = 서식지; 길이 = 길이; } } 클래스 송어는 물고기를 확장합니다 { 생성자 (서식지, 길이, 다양성) { 슈퍼 (서식지, 길이); // 부모의 생성자를 호출합니다 this.variety = 다양성; } }
Trout
의 생성자에서는 super(habitat, length)
중요합니다. 그것은 Trout
대상의 맥락 내에 habitat
와 length
특성을 확립하여 Fish
의 생성자라고 부릅니다. super()
생략하면 참조 오류가 발생합니다. 이것은 super()
부모 클래스의 속성을 어린이 수업에 어떻게 통합하는지 보여줍니다.
중요하게도 JavaScript는 유연성을 제공합니다. 오류를 피하려면 super()
을 호출 해야 하지만 부모의 생성자가 기대하는 정확한 매개 변수를 전달할 필요는 없습니다. 대안 적으로 속성을 직접 할당 할 수 있습니다.
클래스 송어는 물고기를 확장합니다 { 생성자 (서식지, 길이, 다양성) { 감독자(); this.habitat = 서식지; 길이 = 길이; this.variety = 다양성; } }
이 접근법은 덜 명확하지만 동일한 결과를 달성합니다. 매개 변수가없는 super()
속성을 생성하지만 정의되지 않은 상태로 두어 후속 할당을 허용합니다. 이것은 Java와 같은 실제 클래스 상속 모델과의 주요 차이점을 강조합니다.
super()
또한 생성자를 넘어 확장됩니다. 상위 클래스 방법에 액세스 할 수 있습니다. 속성을 표시하기 위해 renderProperties
메소드를 추가하겠습니다.
수업 물고기 { RenderProperties (요소) { 요소 .innerhtml = json.stringify (this); } } 클래스 송어는 물고기를 확장합니다 { renderPropertieswithSuper (요소) { 요소 .className = "Green"; Super.renderproperties (요소); // 부모의 방법을 호출하십시오 } }
Trout
의 renderPropertiesWithSuper
Fish
의 renderProperties
재사용하여 추가 기능을 추가합니다. 이름 지정 ( renderPropertiesWithSuper
)은 의도적입니다. 부모의 방법을 덮어 쓰는 것을 피하여 두 가지 모두에 액세스 할 수 있습니다.
이 클래스 기반 구문은 본질적으로 편리하다는 점에 유의해야합니다. extends
및 super()
없이도 동일한 기능을 달성 할 수 있지만 직접 프로토 타입 조작과 관련된 더 복잡한 코드로 달성 할 수 있습니다. 이것은 "구문 설탕"개념을 강화합니다.
결론적으로, JavaScript 클래스는 프로토 타입 상속을 사용하는 동안 super()
가진 클래스와 같은 구조를 제공합니다. 프로토 타입 상속 기초와 함께이 뉘앙스를 이해하는 것은 JavaScript, 특히 React와 같은 프레임 워크에서 효과적으로 클래스를 사용하는 데 중요합니다.
위 내용은 JavaScript의 Super () 란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

한동안 iTunes는 팟 캐스팅에서 큰 개 였으므로 "Podcast 구독"을 링크 한 경우 다음과 같습니다.

우리는 그들이 2013 년에 크롬에 갔을 때 오페라를 잃었습니다. 올해 초 크롬 (Chrome)에 갔을 때 Edge와 같은 거래를했습니다. Mike Taylor는 이러한 변화를 "감소 적으로"불렀습니다

Trashy Clickbait 사이트에서 가장 8 월 출판물에 이르기까지 공유 버튼은 웹 전체에서 오랫동안 어디서 유비쿼터스되었습니다. 그럼에도 불구하고 이것들은 논쟁의 여지가 있습니다

이번 주에 Apple은 웹 구성 요소, Instagram이 Insta-Loading 스크립트의 방법 및 자조적 자체 호스팅 리소스를 생각하기위한 음식을 웹 구성 요소에 들어갑니다.

GIT 명령의 문서를 살펴 보았을 때 많은 사람들이 옵션이 있음을 알았습니다. 나는 처음에 이것이 단지 a라고 생각했다

어려운 문제가 어려운 것 같지 않습니다. 우리는 종종 수천 가지 색상의 제품 샷을 가지고 있으므로 우리는 다음과 같이 뒤집을 수 있습니다. 우리도 아닙니다

웹 사이트에 어두운 모드 옵션이있을 때 좋아합니다. 다크 모드는 웹 페이지를 더 쉽게 읽을 수있게하고 눈이 더 편안하다고 느끼도록 도와줍니다. 많은 웹 사이트를 포함합니다

이것은 처음으로 HTML 요소를보고 있습니다. 나는 그것을 잠시 동안 알고 있었지만 아직 스핀을 위해 그것을 가져 갔다. 그것은 꽤 시원하고 있습니다


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

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

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

Dreamweaver Mac版
시각적 웹 개발 도구
