美文网首页
类、构造函数、实例、实例化的区别与联系

类、构造函数、实例、实例化的区别与联系

作者: tobyDing | 来源:发表于2017-03-15 19:28 被阅读0次

    首先,我们要清楚,由于种种原因,同一个东西,往往有多种不同的 叫法,如:
    构造函数又叫构造器,实例化的过程又叫构造,更是new的过程。

    var oDate=new Date()
    oDate 是一个对象,也是一个实例,可以用它来执行一些方法,如:
    oDate.getFullYear()
    (这里一般习惯用脚本语言做开发的,喜欢称它为 对象,其他的喜欢称它为 实例)
    而我们不能用Date这个类去执行一些 方法;


    换一个更生动的说法:

    我们 根据一张图纸造一个产品,如,根据房子的图纸造房子,根据车的图纸来造车等等,,

    这里
    图纸  相当于  类
    建造  这个动词  相当于   构造函数(构造器)和实例化(构造)
    最终产品   相当于  对象(实例)
    

    所以,从这个角度来说,单纯一张图纸(类),是 无法使用这个产品的一些功能或者方法的,需要我们把图纸 实例化 为一个产品(实例或对象)才行;


    接下来,我们来看一下 ,建造的过程,或者构造器(构造函数):

    <script>
        class Cla{
          constructor(){//这里就是构造器(构造函数)---相当于建造的机器人
            //第1步(隐含):let this=new Object();
            //第2步(看得见):加东西
            this.a=12;
            this.b=5;
            //第3步(隐含):return this;
          }
          show(){
            alert(this.a+this.b);
          }
        }
        let obj=new Cla();
        obj.show();
        </script>
    

    constructor内部的东西就是整个构造器(构造函数)的东西。这里我们
    形象的理解为 构造器(构造函数)为工厂机器人,让它造整个产品,,,
    所以一些属性的添加,方法的调用,继承,都要在这里进行,,

    同时,系统也会隐含的为我们做两件事:

    1.  let this=new Object();  ---创建一个空白对象
    2.  return this;       ---返回这个经过机器人添加东西的对象
    ### 同时注意这也就是,我们为什么在面向对象里,频繁使用this和找this指向问题的原因,,,
    ### 因为系统创建和返回对象,都是通过this来执行的
    ### 另外,面向对象的程序编写的过程中,遇到的大多数错误,一般都是this指向问题的错误
    

    相关文章

      网友评论

          本文标题:类、构造函数、实例、实例化的区别与联系

          本文链接:https://www.haomeiwen.com/subject/nvkrnttx.html