JavaScript中的factoryfunctions到底是什么?它解决什么问题?什么是实时示例?
工厂函数是一个正常的函数,它将建立一个对象并返回它。例如,我们可以通过以下方式创建人员界面/类:
function createPerson(name,age)
{
let per = new Object();
per.name = name;
per.age = age;
per.sayName() = function(){
return this.name;
};
return per;
}
使用这种工厂功能模式,您可以通过以下方式创建人员的新实例:
let myNewPerson = createPerson("Nick",20);
此模式的主要问题是,在原型上没有提供函数属性,而是为每个函数属性创建了一个新对象(匿名函数是一个对象,一个Function的实例)。此外,这种模式不能解决对象识别的问题,即无法说出对象是什么类型的对象。