이번에는 JS상속과 다중상속을 어떻게 사용하는지, 그리고 JS상속과 다중상속을 사용할 때 주의사항은 무엇인지 알아보겠습니다.
최신 EC6에는 이미 클래스 관련 기능이 있지만 대중성 측면과 오래된 코드를 읽어야 한다는 점에서 이 지식을 이해해야 합니다.
이 글의 구조:
1 원리 및 분석
② 단순 캡슐화 후 적용
1 상속
1 원리 및 분석
첫 번째 사진 :
이 코드의 아이디어를 사용하여 상속을 구현합니다. 즉:
var inherit=function(objBase){ var F=function(){}; //第一步:定义一个函数F F.prototype=objBase; //第二步:将传进来的基类对象(objBase)赋给函数F的原型(F.prototype) return new F(); //第三步:返回一个F对象(已经具备了objBase特征) }
② 단순 캡슐화 후 적용
Function.prototype.inherit=function(objBase){ this.prototype=new objBase(); } var Person=function(){ this.name="倩倩"; this.sex="女"; } var Student=function(){ this.id="0712"; } Student.inherit(Person); var student=new Student(); alert(student.name +","+ student.sex +","+ student.id);
1 다중 상속
1 원리 및 분석
다중 상속은 여러 객체의 멤버를 현재 객체에 부여
var o1={name:"倩倩"} //对象的字面值 var o2={sex:"女"} var She=function(){} She.prototype={}; //先声明 for(var k in o1){ She.prototype[k]=o1[k]; } for(var k in o2){ She.prototype[k]=o2[k]; } var she=new She(); alert(she.name + "," + she.sex);
② 간단한 캡슐화 후 적용
Function.prototype.inherits=function(){ var arr=arguments; //将接收到的arguments对象传给数组arr this.prototype={}; for(var i=0;i<arr.length;i++){ for(var k in arr[i]){ var obj=arr[i]; this.prototype[k]=obj[k]; } } } var o1={name:"倩倩"} //对象的字面值 var o2={sex:"女"} var She=function(){} She.inherits(o1,o2); var she=new She(); alert(she.name + "," + she.sex);
이 기사의 사례를 읽으신 후 방법을 숙달하셨다고 생각합니다. 더 흥미로운 정보를 보려면 다음 페이지의 다른 관련 기사를 주목하세요. PHP 중국어 웹사이트!
추천 도서:
JS 배열과 JSON 객체를 동적으로 추가, 수정, 삭제하는 방법
위 내용은 JS 상속과 다중 상속을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!