이 글은 예제를 통해 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 프로그래밍 설계에 도움이 되기를 바랍니다.