JavaScript 하위 클래스는 Object.getPrototypeOf를 사용하여 상위 클래스 메서드 analyze_javascript 기술을 호출합니다.

WBOY
풀어 주다: 2016-05-16 17:10:33
원래의
853명이 탐색했습니다.

각 함수에는 프로토타입이라는 프로토타입 속성이 있습니다. 각 개체에는 Firefox/Safari/Chrome/Opera에서 __proto__를 통해 액세스할 수 있는 프로토타입도 있습니다. IE6/7/8에는 관련 인터페이스가 제공되지 않습니다.

코드 복사 코드는 다음과 같습니다.

function Person(){
this .method1 = function(){}
}
Person.prototype.method2 = function(){}

function Man(){}
Man.prototype = new Person();

Man.prototype.m1 = function(){}
Man.prototype.m2 = function(){}

var m = new Man()
for( var a in m.__proto__){
Alert(a);
}

는 상위 클래스인 Person과 하위 클래스인 Man을 정의합니다. Man 객체를 새로 만들고 모든 속성을 인쇄합니다.

ECMAScript V5는 객체의 프로토타입을 얻기 위해 Object(Firefox/Chrome으로 구현됨)에 정적 getPrototypeOf 메서드를 추가합니다. Java의 super를 모방하는 데 사용할 수 있습니다.

코드 복사 코드는 다음과 같습니다.

function Person(){
this .method1 = function(){alert(1)}
}
Person.prototype.method2 = function(){alert(2);}

function Man(){
this .m1 = function(){
Object.getPrototypeOf(this).method1();
}
}
Man.prototype = new Person(); // 프로토타입 상속

Man.prototype.m2 = function(){
Object.getPrototypeOf(this).method2();
}


var man = new Man(); .m1( );
man.m2();

Man 하위 클래스의 this에 걸려 있는 m1 메서드는 Person 상위 클래스에 있는 this에 걸려 있는 method1을 호출합니다. 프로토타입 이 메서드는 상위 클래스 프로토타입에서 method2를 호출합니다.
위에서 볼 수 있듯이 객체 프로토타입에는 생성자 프로토타입의 속성뿐만 아니라 생성자에도 이에 대한 속성이 포함되어 있습니다. 물론 JavaScript의 컨텍스트상의 이유로 부모 클래스의 이 작업은 하위 클래스에서 자동으로 변환될 수 없으며 이를 완료하려면 일부 기술이 필요합니다.

Java에서는 이렇습니다


코드 복사 코드는 다음과 같습니다.
package bao1;

class Person {
private String name;

Person(String name) {
this.name = name; () {
System.out.println(this.name);
}
}
class Man 확장 Person{

Man(문자열 이름) {
super( 이름);
}
public void m1() {
super.method1()
}
}
public class Test {
public static void main(String[ ] args) {
Man man1 = new Man("Jack");
man1.m1()
}
}


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿