js面向对象继承

Posted 凌晨四点的北京

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js面向对象继承相关的知识,希望对你有一定的参考价值。

                      js的面向对象变成其实是基于对象的开发(js是没有累的概念);

1:任何基于对象的变成都有三个特征,抽象封装,继承,多态。

  1 抽象封装:抽象指抽取对象的属性和行为(方法),然后有机的结合在一起,这个过程叫做封装,结果就是只对外提供接口(通过this创建共有属性共有方法),而隐藏内部的实现(共有方法可以调用私有的方法)。

  2 :继承:子类实现拥有父类的属性和方法的过程称之为继承;常用的继承凡事如下两种。

      1:call或者apply    

        function F(x){

 

            this.x=x

 

            this.sayX=function(){

 

             alert(this.x)

 

            }

 

           }

           function Y(x){

 

            F.call(this,x);

 

           //F.apply(this,agruments);

 

             }

 

           var t=new Y(2);

 

          alert(t.sayX())//2

 

        注意??:call apply是无法调用

        

        function F(x){

            this.x=x

          }

          F.prototype.sayX=function(){

 

              alert(this.x)

 

          }

 

         function Y(x){

 

            F.call(this,x);

             }

 

           var t=new Y(2);

 

          alert(t.sayX())//new_file.html?__hbt=1524886368955:91 Uncaught TypeError: t.sayX is not a function

 

       2 原型链继承

       function Person(name, sex){

            this.name=name;

            this.sex=sex;

      }

        Person.prototype.showName=function(){

            alert(this.name);

       }

        Person.prototype.showSex=function(){

              alert(this.sex);

      }

        function worker(name,sex,job){

            this.job=job;

          Person.apply(this,arguments)//获取公有的属性

       }

        worker.prototype=new Person()

        worker.prototype.sayJob=function(){

          alert(this.job)

        }

        var n=new worker(‘xxw‘,‘nan‘,‘chenguxyuan‘);

        console.log(n)

        alert(n.showName())//xxw

        alert(n.showSex())//nan

        alert(n.sayJob())//chenguxyuan

3 多态

      js 天然支持多态度

       通过判断参数argumrnts还有若数据类型,赋值什么数据就是什么数据

 

    

    

以上是关于js面向对象继承的主要内容,如果未能解决你的问题,请参考以下文章

JS面向对象---继承

js面向对象编程/原型链/继承 —— javascript

js面向对象继承

JS面向对象组件 -- 继承的其他方式(类式继承原型继承)

JS面向对象,原型,继承

js(面向对象,继承与原型对象)