前端 继承实现方式

和java后端代码一样,前端j也有继承,加js主要有以下几种继承方式:对象冒充,call()方法,apply()方法,原型链继承以及混合方式。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="js/jquery.js"></script>
    </head>
<body>
    <script> 
//继承第一种方式:对象冒充
     function Parent(username){
          this.username = username;
          this.hello = function(){
           alert(this.username);
          }
        }
     function Child(userName,password){
          //通过以下3行实现将Parent的属性和方法追加到Child中,从而实现继承
          //第一步:this.method是作为一个临时的属性,并且指向Parent所指向的对象,
          //第二步:执行this.method方法,即执行Parent所指向的对象函数
          //第三步:销毁this.method属性,即此时Child就已经拥有了Parent的所有属性和方法 
         this.method = Parent;
         this.method(userName);

         //delete this.method;
         this.password = password;
         this.world= function(){
             alert(this.password);
         }
         
     } 


     
     
/*     
//继承第二种方式call()方法
        function Parent(username){
          this.username = username;
          this.hello = function(){
           alert(this.username);
          }
        }
        function Child(username,password){
          Parent.call(this,username);
          this.password = password;
          this.world = function(){
           alert(this.password);
          }
        }*/
        
        



    //继承的第三种方式:apply()方法方式
    
    //apply方法接受2个参数, 
    //A、第一个参数与call方法的第一个参数一样,即赋值给类(即方法)中出现的this 
    //B、第二个参数为数组类型,这个数组中的每个元素依次赋值给类(即方法)所接受的参数            
/*        function Parent(username){ 
          this.username = username; 
          this.hello = function(){ 
           alert(this.username); 
          } 
        } 
        function Child(username,password){ 
          Parent.apply(this,new Array(username)); 
          this.password = password; 
          this.world = function(){ 
           alert(this.password); 
          } 
        } */
        var parent = new Parent("父类");
        var child = new Child("子类","123456");
        parent.hello();
        child.hello();
        child.world();
    </script>    
    </body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

普罗旺斯_浅笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值