>  기사  >  웹 프론트엔드  >  JavaScript 상속 방법에 대한 자세한 설명(2)

JavaScript 상속 방법에 대한 자세한 설명(2)

零到壹度
零到壹度원래의
2018-03-22 14:24:21960검색

이 기사는 클래스 확장을 구현하기 위한 몇 가지 도구 함수를 작성하는 것으로 시작됩니다. 각 유틸리티 함수는 클래스 작성의 특정 방식(습관)을 목표로 합니다. 이 기사에서는 생성자 메서드에 따라 클래스를 작성합니다. 속성(필드)과 메서드가 모두 여기에 달려 있습니다. 다음 클래스는 각각 상위 클래스와 하위 클래스로 제공됩니다.

/

/  父类Person
function Person(nationality) {
    this.nationality = nationality;
    this.setNationality = function(n) {this.nationality=n;};
    this.getNationality = function() {return this.nationality;};
}
// 子类Man
    function Man(name) {
    this.name = name;
    this.setName = function(n){this.name=n;};
    this.getName = function(){return this.name;};
}

1, 도구 기능 1 상속

/**
 * @param {Function} subCls 子类
 * @param {Function} superCls 父类
 * @param {Object} param 父类构造参数
 */
function extend(subCls, superCls, param) {
superCls.call(subCls.prototype, param);
}

다음을 사용하세요.

extend(Man, Person, 'China');
var m = new Man('jack');
console.log(m.nationality);//China
console.log(m.setNationality('Japan'));
console.log(m.getNationality('Japan'));//Japan

출력에서는 Man이 Person의 속성과 모든 메서드를 상속한다는 것을 보여줍니다. 이 상속 방법은 Java와 매우 다릅니다.

class Animal {
int legs;
Animal(int l) {
legs = l;
}
int getLegs() {
return legs;
}
}
public class Person extends Animal{
//属性(字段)
String name;
//构造方法(函数)
Person(int legs, String name) {
super(legs);//调用父类构造器
this.name = name;
}
//方法
String getName() {
return this.name;
}
public static void main(String[] args) {
Person p = new Person(2,"jack");
System.out.println(p.legs);
}
}

Java에서 하위 클래스 Person은 자체 구성 메서드에서 상위 클래스 구성 메서드 super(legs)를 호출하고 객체를 생성할 때 상위 클래스 구성 매개변수인 Legs:2를 직접 전달합니다. 입장할 때 이름만 입력하지 마세요:jack. 위의 JavaScript 상속은 new가 아닌 ​​확장 시 상위 클래스 구성 매개변수(확장 함수의 세 번째 매개변수)를 전달하는 것입니다. 인력을 배치할 때 상위 클래스 구성 매개변수를 전달하세요. 좋습니다. Java를 시뮬레이션하여 확장을 구현합니다. 여기서 상위 클래스 참조는 하위 클래스에 임시로 저장됩니다.

2. 도구 함수 2번을 상속받거나

/**
 * @param {Function} subCls
 * @param {Function} superCls
 */
function extend(subCls, superCls) {
subCls.supr = superCls;
}

또는 Person을 부모 클래스로 사용하여 Woman

function Woman(nationality, name) {
Woman.supr.call(this, nationality);//和java有点类似哦,在子类中调用父类构造器
this.name = name;
this.setName = function(n){this.name=n;};
this.getName = function(){return this.name;};
}
extend(Woman, Person);

하위 클래스를 구현합니다. 마지막으로 객체를 생성하는 방법은 Java와 유사합니다. 즉, 새로운 경우 부모 동시에 클래스가 추가됩니다. 구성 매개변수(국적:일본)가 전달됩니다.

아아아아

위 내용은 JavaScript 상속 방법에 대한 자세한 설명(2)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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