저 물건이 아닌 이 물건, 세번째!
객체 간에 상속이 있으므로 객체 간의 세 가지 상속 방법에 대해 이야기해 보겠습니다.
1. 가장 상속
1 //创建了孙悟空构造函数 2 function Sun(change,weapon,gf){ 3 this.change = change; 4 this.weapon = weapon; 5 this.gf = gf; 6 this.bianshen = function(){ 7 alert("吃俺老孙一棒"); 8 } 9 } 10 11 //给原型上添加一个方法 12 /*Sun.prototype.bianshen = function(){ 13 alert("吃俺老孙一棒"); 14 }*/ 15 16 //创建猪八戒构造函数 17 function Zhubajie(name){//name是猪八戒自己单独有的属性 18 this.name = name; 19 //创建一个属性,属性值是Sun构造函数 20 this.sun = Sun; 21 this.sun("仙桃","金箍棒","紫霞仙子"); 22 delete this.sun;//删除掉这个属性 23 } 24 25 var zbj = new Zhubajie("猪八戒"); 26 27 28 zbj.bianshen();//方法可以使用 29 alert(zbj.weapon); 30 31 32 //zbj 和Sun 不是同一类型的 33 alert(zbj instanceof Sun); //false
이것이 첫 번째 상속 방법입니다.
【참고】상속 가장의 단점: 프로토타입에 메서드와 속성을 사용할 수 없습니다. 장점: 매개 변수를 전달할 수 있습니다.
2. 프로토타입 상속
1 function Dan(car,money,home){ 2 this.car = car; 3 this.money = money; 4 this.home = home; 5 } 6 7 //发方法声明在原型对象上 8 Dan.prototype.shoping = function (){ 9 alert("买买买"); 10 } 11 Dan.prototype.money = "5亿"; 12 13 //这个实例化对象是Dan的儿子,可以使用Dan的属性和方法 14 var son = new Dan("劳斯莱斯幻影","10亿","四合院"); 15 16 17 //创建一个乞丐构造函数 18 function S(name){ 19 this.name = name; 20 } 21 22 //让乞丐继承富豪的属性和方法 23 //把乞丐的构造函数原型修改成干爹的原型,这样,乞丐实例化对象就可以使用干爹的属性和方法。(两种方法) 24 // S.prototype = Dan.prototype; 25 S.prototype = new Dan(); 26 27 //把S的原型对象constructor指针指回自己,否则会出问题 28 S.prototype.constructor = S; 29 var s = new S("苏乞儿"); 30 s.shoping(); 31 alert(s.money); 32 33 //判断s的爸爸是不是 Dan 34 alert(s instanceof Dan);//true s 和 Dan不是一个东西
이 상속 방법은 새로 생성된 상위 클래스 객체를 프로토타입에 할당하는 것입니다. 하위 클래스 생성자 프로토타입.
【참고】프로토타입 체인 상속의 단점: 매개변수를 전달할 수 없습니다. 장점: 프로토타입의 메서드를 사용할 수 있고, 재사용이 가능하며, 매개변수를 상위 클래스에 전달할 수 있습니다.
자바스크립트의 모든 내용은 여기까지입니다. 모두에게 도움이 되기를 바랍니다! ! ! ! ! !
위 내용은 자바스크립트 객체 사이에는 세 가지 상속 방법이 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!