【发布时间】:2020-05-31 12:27:24
【问题描述】:
JavaScript 中的 factoryfunctions 到底是什么?它解决了什么问题?什么是实时示例?
【问题讨论】:
-
这能回答你的问题吗? Constructor function vs Factory functions
标签: javascript function factory
JavaScript 中的 factoryfunctions 到底是什么?它解决了什么问题?什么是实时示例?
【问题讨论】:
标签: javascript function factory
工厂函数是构建对象并返回它的普通函数。例如,我们可以这样创建一个人界面/类:
function createPerson(name,age)
{
let per = new Object();
per.name = name;
per.age = age;
per.sayName() = function(){
return this.name;
};
return per;
}
使用这个工厂函数模式,你可以用这种方式创建一个新的 person 实例:
let myNewPerson = createPerson("Nick",20);
这种模式的主要问题是函数属性不在原型树上,因此为每个函数属性创建了一个新对象(匿名函数是一个对象,Function 的一个实例)。此外,这种模式并没有解决对象识别的问题,即无法说出一个对象是什么类型的对象。
【讨论】: