最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

javascript对象之间存在的三种继承方式

来源:动视网 责编:小采 时间:2020-11-27 20:18:59
文档

javascript对象之间存在的三种继承方式

javascript对象之间存在的三种继承方式:这个对象,不是那个对象,第三哦!对象之间会存在继承,所以,来说一下他们之间存在的三种三种继承方式: 1、冒用继承 1 //创建了孙悟空构造函数 2 function Sun(change,weapon,gf){ 3 this.change = change; 4 this.weapon = w
推荐度:
导读javascript对象之间存在的三种继承方式:这个对象,不是那个对象,第三哦!对象之间会存在继承,所以,来说一下他们之间存在的三种三种继承方式: 1、冒用继承 1 //创建了孙悟空构造函数 2 function Sun(change,weapon,gf){ 3 this.change = change; 4 this.weapon = w


这个对象,不是那个对象,第三哦!

对象之间会存在继承,所以,来说一下他们之间存在的三种三种继承方式:

  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不是一个东西

    这种继承方式就是将新建的父类对象赋给子类构造函数的原型。

    【注意】原型链继承缺点:不能传递参数 优点:可以使用原型 上的方法 ;    

  3、混合继承 

 1       function Person(name,id,sex){ 
 2 this.name = name; 
 3 this.id = id; 
 4 this.sex = sex; 
 5 this.think = function(ss){ 
 6 alert(ss); 
 7 } 
 8 } 
 9 
 10 Person.prototype.eat = function(){
 11 alert("呵呵");
 12 }
 13 
 14 
 15 
 16 function XM(name,id,sex,clas){
 17 this.clas = clas;
 18 //call方法是用来继承用的。你想继承那个对性的属性,就要把属性传递进来;
 19 // Person.call(this,name,id,sex);
 20 
 21 //apply和call功能相同;
 22 //区别 call方法 参数要一个一个传, apply方法可以传参数数组
 23 //优先选择apply方法使用
 24 Person.apply(this,arguments);
 25 }
 26 
 27 //原型链继承 + call/apply 叫混合继承
 28 XM.prototype = new Person();
 29 XM.prototype.constructor = XM;
 30 
 31 
 32 var xiaoming = new XM("小明","12312112112332","男","一年级二班");
 33 alert(xiaoming.name);//打印小明名字属性
 34 xiaoming.think("坎坎坷坷");
 35 
 36 //现在有一个需要,让小明可以使用Person对象原型上的方法
 37 xiaoming.eat();

    第三种方式就是 冒用继承 + 原型继承 ,既能继承父类的原型,完成复用,又能向父类传递参数。

    javascript所有的内容就到这里了,希望可以帮到大家!!!!!!

文档

javascript对象之间存在的三种继承方式

javascript对象之间存在的三种继承方式:这个对象,不是那个对象,第三哦!对象之间会存在继承,所以,来说一下他们之间存在的三种三种继承方式: 1、冒用继承 1 //创建了孙悟空构造函数 2 function Sun(change,weapon,gf){ 3 this.change = change; 4 this.weapon = w
推荐度:
标签: 方法 js 对象
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top