Javascript的工厂函数指的是什么?

JavaScript023

Javascript的工厂函数指的是什么?,第1张

所谓工厂函数,就是指这些内建函数都是类对象,当你调用他们时,实际上是创建了一个“类实例”。

我们首先通过new关键字创建了一个对象,obj就相当于Object的实例。我们通过类实例化了一个对象,然后给这个对象相应的属性,最后返回对象。我们可以通过调用这个函数来创建对象,这样的话,实际上工厂函数也很好理解了:

1,它是一个函数。

2,它用来创建对象。

3,它像工厂一样,“生产”出来的函数都是“标准件”(拥有同样的属性)

JavaScript项目有一个趋势,变得难以测试和重构,因为我们经常鼓励使用复杂的抽象层。原型和类实现一个简单的想法使用复杂和不人性的工具,如 new 和 this ,即使现在,这仍然引起各种各样的困惑,几年后他们被添加到语言。

构造函数与工厂函数之间差异:1.工厂函数需要创建对象,以及必须有返回值2.工厂函数针对的都是Object的对象模型,而构造函数可以匹配自定义的对象模型即前者不论创建什么都只有一个xx instanceof Object而后者根据自定义名而定类型,如上举例所示3.构造函数弊端,如果在全局中定义相同的局部变量,容易造成全局污染,因为this.xx如果在局部获取不到,就会去全局中获取4.构造函数可以重写,可以在全局中添加新属性和方法Person.prototype = {},但工厂函数只能在局部添加各自适用场合:构造函数:适应用于大型项目,属性以及方法时常变换的项目工厂函数:适应用于小型项目,或者正在制作过程还没有成型的项目

这篇文章我们通过通过nodejs插件完成 函数工厂和对象工厂的例子。

首先看下面这段node.js代码 ,我们引用的my_node_addon插件需要导出

createFunc函数 和 createObject函数, 并且 createObject函数返回的对象包含

add和addCallback 两个加法函数

插件源码main.cpp如下

如何编译插件不在啰嗦,请看前几篇文章,至此我们已经成功通过C++ 为nodejs 插件增加了 函数工厂 和对象工厂。