面向对象继承

本文详细介绍了JavaScript中创建div对象的步骤,包括构造函数、添加文本、设置CSS样式和插入元素。同时,探讨了五种继承方法:原型链继承、借用构造函数继承、组合继承、寄生式继承和寄生组合继承,每种方法的特点和应用场景进行了说明。
摘要由CSDN通过智能技术生成

一.面向对象创建div
1.创建构造函数
2.创建div节点
3.添加文本节点
4.设置css样式
5.在内部末尾插入指定元素

  function DivBox(){         this.divDom=document.createElement("div");
      }
      DivBox.prototype.text=function(str){
          this.divDom.innerHTML=str;
          return this;
      }
      DivBox.prototype.css=function(styleobj){
          for(var key in styleobj){
              this.divDom.style[key]=styleobj[key]
          }
           return this;
        }
       DivBox.prototype.append=function(id){
           var box=document.getElementById(id);
               box.appendChild(this.divDom);
               return this;
       }
       var div1=new DivBox();
       div1.text("第二天").append("box").css({
           "background":"pink",
           "width":"300px",
           "height":"100px"
       })

二.继承的五种方法
1.原型链继承:(继承所有)继承父类 本身 以及 原型对象上的所有 属性 方法。

       function Fu(name){
       this.name=name
   }
   Fu.prototype.say=function(){
       console.log("我是原型链继承")
   }
    function Zi(){
    }
    Zi.prototype=new Fu("姓名");
    var my =new Zi();
    console.log(my)

2. 借用构造函数继承:可以给 父类 的构造函数传参, 只能继承 父类 自身的属性方法…原型对象上的不能继承

 function Fu(name,sex){
    this.name=name;
    this.sex=sex;
}
Fu.prototype.say=function(){
    console.log("我是借用构造函数继承")
}
function Zi(n,s){
    Fu.call(this,n,s)
}
var my=new Zi("姓名","年龄");
console.log(my.name,my.sex);
my say();

3.组合继承: 组合继承== 原型继承(继承所有) + 借用构造函数继承/类式继承/改变this指向继承(可以给构造函数传参)

function Fu(name,sex){
     this.name=name;
     this.sex=sex;
 }
Fu.prototype.say=function(){
    console.log("我是组合继承")
}
function Zi(n,s){
    Fu.call(this,n,s)
}
Zi.prototype=new Fu();
 var my=new Zi("姓名","年龄");
 console.log(my.name,my.sex);
 my.say();

4.寄生式继承:寄生式继承是于原型式继承紧密相关的一种思路。寄生式基础的思路与寄生构造函数和工厂模式类似,既创建一个仅用于封装继承过程的函数,该函数内部以某种方式来增强对象,最后再像真地是它做了所有工作一样返回对象。

 function sub(obj) {
      function Cat() { }
      Cat.prototype = obj
      return new Cat()
    }
    function createObj(obj) {
      var tom = sub(obj)
      tom.color = '黑色'
      tom.say = function () {
        console.log('你好')
      }
      return tom
    }
    var animal = {
      name: "动物",
      age: 2
    }
    createObj()

5:寄生组合继承: 
寄生:在函数内返回对象然后调用  
组合:
1、函数的原型等于另一个实例。
2、在函数中用apply或者call引入另一个构造函数,可传参

 function Animal(name) {
      this.name = name
      this.run = function () {
        console.log('跑')
      }
    }
    Animal.prototype.eat = function () {
      console.log('吃')
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值