>  기사  >  웹 프론트엔드  >  js 상속에서 메소드 재작성을 설명하는 핵심 사항

js 상속에서 메소드 재작성을 설명하는 핵심 사항

亚连
亚连원래의
2018-05-17 09:57:412419검색

1. 인터뷰에서 만난 질문은 하위 클래스가 상위 클래스를 상속한다는 것입니다. 상위 클래스에는 두 가지 메서드가 있으며 그 중 하나를 재정의합니다. 상속에 관해서는 반드시 결합 상속을 사용합니다. 메소드는 모두 프로토타입에 작성됩니다. 메소드를 서브클래스의 프로토타입 object에 직접 작성하면 객체의 속성 검색이 기반이 되기 때문에 괜찮습니다. 프로토타입 체인에서는 근접성 원칙에 따라 먼저 발견된 메서드가 호출됩니다.

2. 코드는 다음과 같습니다.

[javascript] view plain copy
// supcalss  
var parent = function(name,age){  
    this.name = name;  
    this.age = age;  
}  
parent.prototype.showProper = function()  
{  
    console.log(this.name+":"+this.age);  
}  
var child = function(name,age){  
    parent.call(this,name,age);  
}  
// inheritance  
child.prototype = Object.create(parent.prototype);  
// child.prototype = new parent();  
child.prototype.constructor = child;
// rewrite function  
child.prototype.showProper = function(){  
    console.log('I am '+this.name+":"+this.age);  
}  
var obj = new child('wozien','22');  
obj.showProper();

이런 방식으로 하위 클래스는 상위 클래스의 showProper 메서드를 재정의합니다. 그 중 Object.create(proto)

함수는 proto 객체를 프로토타입 객체로 하여 객체를 생성하고 이 객체를 반환하는 함수입니다.

메서드 찾는 순서: obj -> child.prototype ->parent.prototype

3. 주의 사항: JS에서 메소드 상속을 구현하고 다시 작성할 때 또는 클래스 메소드를 생성할 때 다음과 같이 작동합니다. 프로토타입 객체 프로토타입이며 메서드를 상속하는 다른 메서드를 고려할 필요가 없습니다.

관련 기사:

JS에서 클래스를 정의하는 방법에 대한 설명

JavaScript의 기본 구문 및 변수에 대한 설명

js에서 기본적이고 일반적으로 사용되는 몇 가지 방법에 대한 설명

위 내용은 js 상속에서 메소드 재작성을 설명하는 핵심 사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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