js中的工厂函数和构造函数

原创 阿波罗D波 随笔 学习收获 134阅读 2019-02-20 00:04:28 举报
工厂函数

概念:编写一个函数,此函数的功能就是创建对象,那么这个函数就叫作工厂函数。
理论:1.它是一个函数;2.它用来创建对象;3它像工厂一样,“生产”出来的函数都是“标准件”(拥有同样的属性);

构造函数

理论:1.构造函数首字母大写;2.内部使用this关键字给对象添加成员;3.使用new关键字调用对象构造函数

以普通方式调用的构造函数

构造函数其实也是一个函数,不同之处在于调用它时必须要加一个“new”关键字,如果不加这个关键字,则对它的调用被认为是普通函数调用。例如:

实际上的构造函数:
构造函数完成的工作:
  1. 创建一个新的对象;
  2. 让构造函数的this引用这一新创建的对象;
  3. 执行构造函数中的代码,这些代码通常完成向新对象添加属性的工作;
  4. 向外界返回新创建的对象引用。
构造函数与工厂函数的区别:

最重要的一点是工厂函数它没有办法解决对象的识别问题(即怎么知道一个对象的类型,因为对象都指向object),而构造函数就很好的解决了这个问题每一个实例都指向了创建该实例的构造函数。

具体点的解释:
  1. 对象构造函数中没有显式的对象创建代码
  2. 新对象应具备的属性与方法是通过this引用添加的.
  3. 对象构造函数中没有return语句
通常会把对象构造函数的首字母设置为大写的,以区别于普通函数。

对象的constructor属性
a).使用对象工厂函数创建对象,每个对象的constructor属性引用Object()

b).使用对象构造函数创建对象,每个对象的constructor属性引用这个构造函数

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复