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

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

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

1. 工厂函数创建对象

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
运行
AI代码解释
复制
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
运行
AI代码解释
复制
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
运行
AI代码解释
复制
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【多路径】CentOS7.7下使用Openfiler+Multipath+UDEV
Openfiler是一款网络存储软件,在Oracle RAC部署的时候,可以用来模拟共享存储,并实现多路径(Multipath)。多路径简单来说,就是连接磁盘的多条链路,避免单条链路中断导致的数据库不可用,另外多条链路间还能实现负载均衡。
甚至熊熊
2021/05/11
2.5K0
【多路径】CentOS7.7下使用Openfiler+Multipath+UDEV
【多路径】CentOS7.7下使用Openfiler+Multipath+UDEV
Openfiler是一款网络存储软件,在Oracle RAC部署的时候,可以用来模拟共享存储,并实现多路径(Multipath)。多路径简单来说,就是连接磁盘的多条链路,避免单条链路中断导致的数据库不可用,另外多条链路间还能实现负载均衡。
甚至熊熊
2021/05/07
2.5K0
Linux不重启识别新挂载磁盘
◆ 一、概述 RAC数据库扩容存储空间,新挂载过来的盘没有识别到,通过fdisk -l命令没有看到。经查询需要重启或者扫描来看到新挂载的磁盘,今天分享一下具体的方法 环境:OEL 6.4 和 RAC 11.2.0.4 ◆ 二、关键事项 不要使用/dev/sdX 或 /dev/dm-XX 作为设备名称,因为此设备名称在重新启动后可能会更改 使用WWID 识别设备 全局标识符 (WWID) 可用于可靠地识别磁盘设备。 WWID 是 SCSI 标准要求所有 SCSI 设备提供的持久的、独立于系统的 ID。 ◆ 三
IT大咖说
2022/07/26
2.5K0
Linux不重启识别新挂载磁盘
CentOS 6上安装RAC权限绑定问题
关于RHEL6安装RAC权限绑定问题 红帽企业版 Linux 6.0 开始弃用 /etc/multipath.conf 配置文件中的mode、uid 和 gid 参数。device-mapper 设备的权限(包括 multipath 映射)由 udev 规则设定,在我们安装RAC的过程中,对权限的给予是一个比较麻烦的问题,一般来说,无论是RHEL5还是RHEL6我们都会通过UDEV来对权限做很好的控制,一下说明在RHEL6下通过两种方法对磁盘权限做控制
会长君
2023/04/26
1.8K0
Linux一键挂载ASM磁盘(适用几十上百块盘)
一、多路径+UDEV 1、使用多路径multipath挂载需要挂载的盘:mpath*格式。 cat </etc/multipath.conf defaults { user_friendly_names yes } blacklist { devnode "^sda" } EOF multipath -F multipath -v2 2、将多路径盘的UUID输出到udev_info文件中 cd /dev/mapper for i in `ls mpath*`; do printf "%s %
Lucifer三思而后行
2021/08/17
1.1K0
Linux平台 Oracle 19c RAC安装Part1:准备工作
Linux平台 Oracle 19c RAC安装指导: Part1:Linux平台 Oracle 19c RAC安装Part1:准备工作 Part2:Linux平台 Oracle 19c RAC安装Part2:GI配置 Part3:Linux平台 Oracle 19c RAC安装Part3:DB配置
Alfred Zhao
2019/08/01
3.7K0
CentOS7的udev的绑定规则
客户一套RAC环境是华为的存储,共享盘是/dev/sd*,咋一看还怀疑是没有进行多路径配置,实际和主机工程师是已经配置好的,我们使用upadmin show vlun命令可以查看到:
Alfred Zhao
2020/09/10
2K0
12C RAC for ASM添加磁盘具体步骤
RHEL 7.2使用EMC Powerpath扩容2T磁盘空间,需要添加至以用12C RAC for ASM系统中。下面是具体步骤,主机人员告知扩容别名为data_center_16、data_center_17
星哥玩云
2022/08/16
8330
ORA-15040 ora-15017ASM磁盘无法挂载故障处理
测试环境突然一个节点的数据库无法启动,报错很清楚,找不到控制文件,而控制文件在ASM上,第一个节点正常,下面是处理流程。
PHP开发工程师
2021/05/10
1.4K0
udev高效、动态地管理 Linux 设备文件
描述: Linux 用户常常会很难鉴别同一类型的设备名,比如 eth0, eth1, sda, sdb 等等。通过观察这些设备的内核设备名称,用户通常能知道这些是什么类型的设备,但是不知道哪一个设备是他们想要的
全栈工程师修炼指南
2022/09/28
8.1K0
udev高效、动态地管理 Linux 设备文件
以CentOS 6.8系统为例部署Oracle 11g RAC和DNS配置
[root@rac01 ~]# vi /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
星哥玩云
2022/08/16
8220
以CentOS 6.8系统为例部署Oracle 11g RAC和DNS配置
Suse 11下多路径及udev配置
    最近给客户基于SuSe 11 SP3下多路径部署Oracle 10g RAC。SuSe 11下用10g,也算一朵奇葩,连篇文档都比较难找,谁叫Oracle太贵呢。下面主要是描述了在该环境下如何去配置多路径。由于10g下的ocr与votingdisk不能直接存放到asm磁盘,所以依旧要使用raw设备方式来保存。下文供大家参考。
Leshami
2018/08/13
1.8K0
Multipath多路径管理基础介绍与安装配置使用
工作原理: 当因为主机HBA卡、线缆、交换机或者存储设备的RAID控制器故障等原因造成一条物理路径失效时,服务器可以将通过此物理路径的I/O转移到其他正常的物理路径上面,应用程序不会觉察到这种改变,从而提高系统的可用性。
全栈工程师修炼指南
2022/09/29
14.5K0
Multipath多路径管理基础介绍与安装配置使用
multipath多路径实验02-配置多路径软件
如果没有安装,则用yum安装即可: yum install device-mapper-multipath
Alfred Zhao
2019/05/24
2.2K0
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作
Alfred Zhao
2019/05/24
9960
关机重启导致 ASM 磁盘丢失数据库无法启动
事情是这样的,各位看官且看之,中秋国庆期间测试机房由于线路变更需要断电,故需要关掉所以测试机器,等待变更完成后,测试环境的 RAC 有一个节点数据库启动不了,检查发现节点 2 的 ARCH 磁盘没有正常挂载。
JiekeXu之路
2023/10/09
3310
关机重启导致 ASM 磁盘丢失数据库无法启动
[Oracle 11g RAC安装]UDEV设置
到这里已经可以在系统中看到openfiler的磁盘,可是重启后路径名会改变,这时需要利用udev固定路径名
bsbforever
2020/08/19
1.8K0
Linux Multipath配置
关于Linux Multipath配置,网上还是很多的,自己再来梳理一下,当前环境为RedHat6,HP P2000存储
星哥玩云
2022/07/04
3.8K0
Oracle 创建磁盘组报错ORA-15137的问题分析与解决思路
ASM扩容本来是件很简单的事,当ASM磁盘准备好之后,直接一条命令就会添加上。但是也会有异常情况,最近就碰到Oracle 19c在扩容时报错的故障,供大家参考。
数据和云
2021/10/13
9190
Oracle 创建磁盘组报错ORA-15137的问题分析与解决思路
实战篇:SUSE 15 SP3 安装 Oracle 19C RAC 数据库
这两天看到有朋友咨询 SUSE 15 SP3 安装 Oracle 19C RAC 遇到点问题,趁着周末有时间,抱着学习的心态,研究了一下如何安装,接下来就分享一下从零开始部署的流程!
Lucifer三思而后行
2021/11/10
4K0
实战篇:SUSE 15 SP3 安装 Oracle 19C RAC 数据库
推荐阅读
相关推荐
【多路径】CentOS7.7下使用Openfiler+Multipath+UDEV
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文