javascript工厂函数(factory function)vs构造函数(constructor function)
2020-12-13 14:52
标签:通过 instance log tor color 类型 use 一个 js代码 如果你从其他语言转到javascript语言的开发,你会发现有很多让你晕掉的术语,其中工厂函数(factory function)和构造函数(constructor function)就是其中的一个。本文试图理顺这两者之间的区别. 工厂函数是将返回一个新的object的任何不是类或者构造函数的函数。在js中,任何函数都能够返回一个object.如果我们不是通过new function()的方式来获得这个对象的,那么她就是一个factory工厂函数. 上面的js代码会创建一个new object并且将传入的参数赋值给到该object的属性上,并且返回该new object. 工厂函数和构造函数区别仅仅在于其用户场景use case以及约定俗成的convention不同,基本上两者是相似的。对于构造函数,人们惯例convention使用首字母大写方式来表示这是一个constructor构造函数.构造函数往往其use case是需要需要通过 new 关键字调用返回类似对象的场景,并且随后我们可以通过 instanceof 关键字来做实例类型检查的场景。 如上面所说,工厂函数和构造函数基本上是一样的,你现在估计有以下问题: 1. 我们可以对工厂函数来使用 new 关键字吗? 2.如果针对工厂函数和构造函数,我们使用 new 关键字将会发生什么呢? 3. 如果针对构造函数并不使用 new 关键字去创造对象会怎么样呢? 下面我们将试图回答上面的几个问题. 我们先使用new关键,应用到工厂函数和构造函数身上,并且console.log打印以下,看看有什么不同. javascript工厂函数(factory function)vs构造函数(constructor function) 标签:通过 instance log tor color 类型 use 一个 js代码 原文地址:https://www.cnblogs.com/kidsitcn/p/11569803.htmlFactory functions
function person(firstName, lastName, age) {
const person = {};
person.firstName = firstName;
person.lastName = lastName;
person.age = age;
return person;
}
Constructor functions
function Person(firstName, lastName, age) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
通过new关键字来创建新的对象objects
使用 new factory 函数
https://medium.com/@chamikakasun/javascript-factory-functions-vs-constructor-functions-585919818afe
下一篇:Threading in C#
文章标题:javascript工厂函数(factory function)vs构造函数(constructor function)
文章链接:http://soscw.com/essay/34570.html