자 바스 크 립 트 의 계승 을 실현 하 는 세 가지 방식
2466 단어 JavaScript이어받다
function Parent(){}
function Child(){}
Child.prototype = new Parent();
child 는 Child 의 인 스 턴 스 로 사용 할 수 있 지만 이 때 는 인 스 턴 스 child 의 원래 대상 구조 정 보 를 잃 어 버 렸 습 니 다.이 결함 을 보완 하 는 방법 은 다음 과 같다.2.apply,call 방법 을 사용 하 는 것 은 JavaScript 에 내 장 된 Function 대상 의 apply,call 방법 으로 대상 구조 에서'this'의 문맥 환경 을 바 꾸 고 특정한 대상 인 스 턴 스 를 대상 구조 에서 정의 하 는 속성,방법 을 가지 게 합 니 다.apply,call 계승 을 사용 하여 실제 개발 에서 HTML 페이지 의 DOM 대상 을 조작 할 때 특히 자주 사용 합 니 다.예 를 들 어
function Parent(){}
function Child(){}
Child.prototype = new Parent();
var child = new Child();
alert(child.constructor);//function Parent(){}
alert(child instanceof Child);//true
apply 또는 call 로 정 의 된 ext 방법 을 통 해 ext 방법 내부 의 this 문맥 을 DOM 대상 으로 표시 합 니 다."apply,call 계승
".주의해 야 할 것 은 apply,call 을 사용 할 때 대상 구조 가 정의 하 는 코드 세그먼트 를 직접 실행 합 니 다.예 를 들 어
function Parent(){}
function Child(){}
Child.prototype = new Parent();
Child.prototype.constructor = Child;
var child = new Child();
alert(child.constructor);//function Parent(){}
alert(child instanceof Child);//true
대상 인 스 턴 스 간 의 계승 JavaScript 대상 의 다 형 성 은 인 스 턴 스 가 속성,방법 을 동적 으로 추가 할 수 있 습 니 다.이 특성 은 자 바스 크 립 트 의 또 다른 계승 기법 인 대상 실례 간 의 계승 을 만 들 었 다.예 를 들 어
<div id="extend">apply,call </div>
<script language="javascript">
function ext()
{
this.onclick=function(){alert(this.innerHTML)}
}
ext.apply(document.getElementById("extend"));
ext.call(document.getElementById("extend"));
</script>
상기 코드 에서 보 듯 이 대상 의 인 스 턴 스 간 계승 에서 부모 대상 Persong 은'사람'이 가지 고 있 는 공동 속성 name,age,하위 대상 nathena 는 자신의 개인 속성 인'sex'를 정의 했다.함수 inline Extendes 의 기능 은 하위 대상 nathena 에 부모 대상 Person 에서 정의 하 는'사람'이 가지 고 있 는 공 통 된 속성 을 복사 하 는 것 입 니 다.그 중에서 특히 주의해 야 할 문 구 는'if(so[i])'이다.이 문 구 는 하위 대상 의 원래 구성원 이 부모 대상 의 동명 이인 구성원 에 게 덮어 쓰 이지 않 고 대상 중의 부자 대상 간 에 계승 하 는 원칙 인 하위 대상 이 부모 대상 을 덮어 쓰 고 과부하 할 수 있 는 속성 이나 방법 을 확보 하고 부모 대상 은 하위 대상 에 게 만 자신의 속성 이나 방법 을 숨 길 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.