前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >通过工厂函数、构造函数创建对象

通过工厂函数、构造函数创建对象

作者头像
很酷的站长
发布2022-12-21 15:04:46
发布2022-12-21 15:04:46
78900
代码可运行
举报
运行总次数:0
代码可运行

1. 工厂函数创建对象

当我们有多个变量的结构非常类似时,如下所示,反复书写结构过于麻烦,我们可以定义一个工厂函数来创建对象

代码语言:javascript
代码运行次数:0
复制
let object1 = {
name: "jia",
add(x, y) {
return x + y;
}
}
let object2 = {
name: "wang",
add(x, y, z) {
return x + y + z;
}
}
console.log(object1.add(1, 2))
console.log(object2.add(1, 2, 3))

使用工厂函数创建对象

代码语言:javascript
代码运行次数:0
复制
function factory(name = '') {
return {
name,
add(...args) {
return args.reduce((sum, item) => sum + item, 0)
}
}
}
console.log(factory('jia').add(1, 2))
console.log(factory('wang').add(1, 2, 3))
2. 使用构造函数创建对象

代码语言:javascript
代码运行次数:0
复制
function User(name) {
this.name = name
this.show = function () {
console.log(`my name is ${name}`)
}
// 函数被实例化时
// 如果没有定义 return 时,默认值为 this
// return this
// 当然,如果不想返回 this 可以自定义返回值
// return {}
}
const person = new User('liang')
person.show()

在 js 中,绝大多数的数据类型都是通过构造函数创建的

在浏览器控制台输出一个对象,可以看到这个对象是通过构造函数 Object 创建的

所以,我们可以这样来定义对象:

代码语言:javascript
代码运行次数:0
复制
const obj = new Object()
const obj = new Object({ name: "liang" })
const count = new Number(100)
const string = new String('liang')
const bool = new Boolean(true)
const date = new Date()
const regexp = new RegExp(/\d{3,}/)
const fun = new Function('cms', `console.log('this is function')`)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 工厂函数创建对象
  • 2. 使用构造函数创建对象
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档