javascript中的构造器和实例化究竟是什么意思?

  1. 构造器constructor,

    • 某些培训机构讲师说构造器就是构造函数? 这说法对吗?
    • 构造器里的new又是什么呢? 经常有人说new一个东西, 该怎么理解new?
    • 在vuejs中, 也经常会出现使用 new关键字 "创建vue实例"的情景.
  2. 实例化的英文是instantiate 还是instance? 什么叫做实例化?

多谢了

阅读 3k
2 个回答
  1. 构造器constructor

    • 通常来讲构造器可以叫做构造函数。构造器实际上就是js里类的别称,类在高级语言中是一个普遍存在的概念,它是一个模板,它没有实体对象,相当于制定了一种创造实体的规格,它是为了实现继承的功能,对应于现实中工业化革命以来实现批量生产的模式。但js实质上没有实现真正的类,而是用new关键字+构造函数的方式替代实现了这个功能,这是有历史原因的,作者一开始并不想把这个语言设计的那么复杂。而正是由于构造器是以函数形式实现的,才把构造器叫做构造函数。
    • new 是一个语言预定义的关键字,其实质是通过在语言内部执行了一些操作而创建出符合类模板的实例对象,语言里的关键字通常都对应了内部机制中的一系列操作,而 new 关键字在 js 中就是使用在构造函数之前,通过它才会将构造函数当作构造器来使用,如果没有 new 关键字,其实定义的构造函数与普通函数无异。
    • 不管是vue还是其他的js框架,都是通过创建一个实例对象来实现应用的,框架的实质就是制定了一套具备各种功能的类模板,通过实例化来执行它的功能。
  2. 实例化的英文是instantiate,很明显这是一个动词,instance是实例的意思。实例化就是通过类模板创建出可以使用具体功能的实体对象。因为大多数高级语言都是面向对象的,所以才会有这样的方式。如果你使用过flash之类的软件,就会很形象的明白类和实例的关系。就是一个模具和产品的关系,生活里处处可见。

构造器相当于一个生产机器,而实例化是使用生产机器产出一个物品。 new + 构造器(构造函数)会产生一个对象,而new操作符的作用分为:1、生成一个对象 2、将this指为对象 3、将该对象作为构造器的结果返回 其中如果构造器自己返回了一个对象,那么new操作符产生的对象就不会被返回。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题