>웹 프론트엔드 >JS 튜토리얼 >JS 상속 사용 예시 분석_javascript 기술

JS 상속 사용 예시 분석_javascript 기술

WBOY
WBOY원래의
2016-05-16 16:15:33939검색

이 글은 예제를 통해 JS 상속의 사용법을 분석합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.

상속: 하위 클래스는 상위 클래스에 영향을 주지 않습니다. 하위 클래스는 상위 클래스의 일부 기능을 상속할 수 있습니다(코드 재사용)

속성 상속: 상위 클래스 호출의 생성자 호출

메서드 상속: for in: 복사 상속(jquery는 복사 상속 확장도 사용함)

1. 상속 복사

function Person (name){
 this.name = name;
}
Person.prototype.showName =function (){
 alert(this.name);
}
function Worker(name,job){
 Person.call(this,name);
 this.job = job;
}
extend(Worker.prototype, Person.prototype);
//如果用Worker.prototype=Person.prototype的话,会造成引用相同的问题
function extend(obj1,obj2){
 for(var i in obj2){
   obj1[i] = obj2[i]
 }
}
var coder = new Worker('magicfly','frontEnd');
coder.showName();

2. 클래스 상속

function Person (name){
 this.name = name;
}
Person.prototype.showName =function (){
 alert(this.name);
}
function Worker(name,job){
 Person.call(this,name);
 this.job = job;
}
//Worker.prototype = new Person();
// 这样继承会继承父级的不必要属性 
function F(){};
F.prototype = Person.prototype;
Worker.prototype = new F();
//通过建立一个临时构造函数来解决 ,也称为代理函数

var coder = new Worker('MAGICFLY','START');
coder.showName();

3. 프로토타입 상속

var a = {
  name : '小明'
};
var b = cloneObj(a);
b.name = '小强';
//alert( b.name );
alert( a.name );
function cloneObj(obj){
  var F = function(){};
  F.prototype = obj;
  return new F();
}

적용 조건

복사 상속: 범용 유형, 새 항목과 함께 또는 새 항목 없이 사용할 수 있습니다.
클래스 상속: 새로운 생성자
프로토타입 상속: new가 없는 객체

이 기사가 모든 사람의 JavaScript 프로그래밍 설계에 도움이 되기를 바랍니다.

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