• 技术文章 >web前端 >js教程

    javascript继承方法有哪些

    醉折花枝作酒筹醉折花枝作酒筹2021-04-08 18:30:48原创144

    javascript继承方法有:1、使用call()方法,可以编写能够在不同对象上使用的方法;2、apply()方法,语法“apply(用作 this 的对象,要传递给函数的参数的数组)”。

    本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

    1、call() 方法

    call() 方法是与经典的对象冒充方法最相似的方法。它的第一个参数用作 this 的对象。其他参数都直接传递给函数自身

    function Huster(name,idNum,college)
        {        this.name = name;        
            this.idNum = idNum;        
            this.college = college;        
            this.course = new Array();    
            
            this.addCourse = function(course)//这个方法不能用prototype来定义,如果用的话,子类无法继承该方法
            {                   //用原型prototype定义的方法可以用原型链来继承,call()方法和apply()方法都无法继承            this.course.push(course);
                console.log(this.course);
            };    
                
        }    
        
        function Autoer(name,idNum)
        {        
        this.college = ‘自动化‘;
            Huster.call(this,name,idNum,this.college);//Autoer使用call()方法来继承 Huster
         if (typeof Autoer._initialized == "undefined") 
         { 
          Autoer.prototype.sayHobby = function() //自己的方法可以用原型链prototype定义
          { 
            alert(this.college+‘人喜欢撸代码!‘);     
          }; 
          Autoer._initialized = true; 
         } 
      } 
       
      var autoer1 = new Autoer(‘偶人儿‘,‘U123456789‘); //声明一个实例autoer1
      console.log(autoer1.name,autoer1.idNum,autoer1.college,autoer1.course); 
      autoer1.addCourse(‘logistics‘);//调用Huster的方法
      autoer1.sayHobby();    //调用自身的方法

    2、apply() 方法

    apply() 方法与call()方法几乎一样,唯一的区别就是apply()方法只有两个参数,第一个用作 this 的对象,第二个是要传递给函数的参数的数组。也就是说apply()方法把call()方法的若干个参数放到一个数组里,传递给父类

    function Huster(name,idNum,college){    
    this.name = name;            
    this.idNum = idNum;    
    this.college = college;    
    this.course = new Array();            
    this.addCourse = function(course)//这个方法不能用prototype来定义,如果用的话,子类无法继承该方法    
    {                   //用原型prototype定义的方法可以用原型链来继承,call()方法和apply()方法都无法继承        
    this.course.push(course);        
    console.log(this.course);    
    };                
    }            
    function Autoer(name,idNum)    
    {        
    this.college = ‘自动化‘;        
    Huster.apply(this,new Array(name,idNum,this.college));//Autoer使用apply()方法来继承 Huster     
    if (typeof Autoer._initialized == "undefined")      
    {       
    Autoer.prototype.sayHobby = function() //自己的方法可以用原型链prototype定义      
    {         
    alert(this.college+‘人喜欢撸代码!‘);           
    };       
    Autoer._initialized = true;      
    }   
    }      
    var autoer1 = new Autoer(‘偶人儿‘,‘U123456789‘); //声明一个实例autoer1  
    console.log(autoer1.name,autoer1.idNum,autoer1.college,autoer1.course);   
    autoer1.addCourse(‘logistics‘);//调用Huster的方法  
    autoer1.sayHobby();    //调用自身的方法

    【推荐学习:javascript视频教程

    以上就是javascript继承方法有哪些的详细内容,更多请关注php中文网其它相关文章!

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!
    专题推荐:javascript 继承
    上一篇:javascript json字符串如何转换成对象 下一篇:如何用js求圆的面积
    第15期线上培训班

    相关文章推荐

    • JavaScript开平方怎么求• javascript如何获取url参数• javascript怎么移除属性• 如何在javascript中绘制方块• javascript怎么去除空白

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网