栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

构造函数与工厂函数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

构造函数与工厂函数

基本区别在于,构造函数与

new
关键字一起使用(这会使Javascript自动创建一个新对象,
this
在该函数内将该对象设置为该对象,然后返回该对象):

var objFromConstructor = new ConstructorFunction();

工厂函数的调用类似于“常规”函数:

var objFromFactory = factoryFunction();

但是要使其成为“工厂”,就需要返回某个对象的新实例:如果它仅返回布尔值或其他内容,则不会将其称为“工厂”函数。这不会像和一样自动发生

new
,但在某些情况下确实提供了更大的灵活性。

在一个非常简单的示例中,上面引用的功能可能看起来像这样:

function ConstructorFunction() {   this.someProp1 = "1";   this.someProp2 = "2";}ConstructorFunction.prototype.someMethod = function() {  };function factoryFunction() {   var obj = {      someProp1 : "1",      someProp2 : "2",      someMethod: function() {  }   };   // other pre to manipulate obj in some way here   return obj;}

当然,您可以使工厂功能比该简单示例复杂得多。

有些人喜欢对所有功能使用工厂功能,只是因为他们不喜欢记住要使用它

new
(编辑:这可能是一个问题,因为没有
new
该功能仍会运行,但不会按预期运行)。我没有看到这有什么好处:
new
它是语言的核心部分,因此我特意避免使用它是任意的-
最好避免使用其他关键字,例如
else

工厂功能的一个优点是,根据某些参数,要返回的对象可以是几种不同的类型。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/464559.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号