小黑的Vue前端之路:js中通过构造函数封装,设置对象getter和setter方法

js中构造函数创建对象

JavaScript本身并不是设计成面向对象的,所以没有class之类的关键字用来定义类,但JavaScript本身相当灵活,可以利用function关键字来定义类并创建对象。

例如js创建person对象

通过new关键字,把函数当成了创建对象的构造函数

function Person(name) {this.name = name;
}var person = new Person('小黑黑');
console.log(person.name);

等价python写法

class Person(object):def __init__(self, name):self.name = name
person = Person('小黑黑')
print(person.name)

通过构造函数封装对象属性的getter和setter方法

1.通过Object.keys获取对象的属性。
2.通过for循环对每个属性设置getter和setter方法。

		// 定义对象let data = {name: '小黑无敌酒量',age: 25,attr: '酒量无敌'}// 通过js构造函数,封装data对象,增加属性getter和setter方法function Obsever(obj){// 获取obj的所有属性的keyconst keys = Object.keys(obj);// 对于每个属性,都添加getter和setter方法keys.forEach((k)=>{Object.defineProperty(this, k, {get(){return obj[k];},set(val){console.log(`小黑黑修改了${k}的值哦,从${obj[k]}变成了${val}`);obj[k] = val;}})})}// 封装data函数data = new Obsever(data);

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/774179.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

某康安全开发工程师一面

一、反射型XSS跟DOM型XSS的最大区别 DOM型xss和别的xss最大的区别就是它不经过服务器,仅仅是通过网页本身的JavaScript进行渲染触发的。 二、Oracle数据库了解多吗 平常用的多的是MySQL数据库,像Oracle数据库也有了解,但是用的不多。 三、…

Fastjson反序列化漏洞原理与漏洞复现(基于vulhub靶场)

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

【码银送书第十五期】一本书掌握数字化运维方法,构建数字化运维体系

前言 数字化转型已经成为大势所趋,各行各业正朝着数字化方向转型,利用数字化转型方法论和前沿科学技术实现降本、提质、增效,从而提升竞争力。 数字化转型是一项长期工作,包含的要素非常丰富,如数字化转型顶层设计、…

macOS Sonoma 14.4.1 (23E224) 正式版发布,ISO、IPSW、PKG 下载

macOS Sonoma 14.4.1 (23E224) 正式版发布,ISO、IPSW、PKG 下载 2024 年 3 月 26 日凌晨,macOS Sonoma 14.4.1 更新修复了一个可能导致连接到外部显示器的 USB 集线器无法被识别的问题。它还解决了可能导致 Java 应用程序意外退出的问题,并修…

Linux Sftp和Scp

scp 和 sftp 区别 1 scp 能将远程文件复制到另一个远程机,sftp 不能。sftp为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式 2.scp 没有删除/创建远程目录功能,sftp 有。scp 在需要进行验证时会要求你输入密码或口令。 3. FT…

栈与队列的实现逻辑以及底层代码

1.前言 栈和队列不是一种语言独有的结构,而是一个由代码语言设计的一种数据结构。是由人设计出的一种具有特定意义的结构。 2.栈 什么是栈,栈以结构体为节点按要求链接的一种后进先出的一种数据结构(last in first out)简称LIF…

Docker部署一个SpringBoot项目(超级详细)

注意:下面的教程主要是针对 Centos7 的,如果使用的其他发行版会有细微的差别,请查看官方文档。 Docker部署一个SpringBoot项目(超级详细) 一、安装Docker1.卸载旧版2.配置Docker的yum库3.安装Docker4.设置开机自启动5.…

通过一篇文章让你了解如何学习C++

如何学习C 前言一、如何学习C二、别人是怎么学C的21天学会C编程能力与编程年龄 三、自己怎么学总结 前言 学习C需要掌握其基础语法、指针和内存管理、STL库使用、面向对象编程等核心概念。可通过阅读权威书籍、在线教程和参考官方文档来系统学习。实践是关键,通过…

网络编程基本概念(一篇文章掌握基本内容的详细概念,IP,端口号,协议,协议分层,封装和分用,客户端和服务端,请求和回应,两台主机的通信)

IP地址 概念 IP地址主要⽤于标识⽹络主机、其他⽹络设备(如路由器)的⽹络地址。简单说,IP地址⽤于定位主机的⽹络地址。 就像我们发送快递⼀样,需要知道对⽅的收货地址,快递员才能将包裹送到⽬的地。 IP的格式 IP地址…

自动化面试常见算法题!

1、实现一个数字的反转,比如输入12345,输出54321 num 12345 num_str str(num) reversed_num_str num_str[::-1] reversed_num int(reversed_num_str) print(reversed_num) # 输出 54321代码解析:首先将输入的数字转换为字符串&#xff…

HarmonyOS SDK 闭源开放能力 —Scan Kit

1.问题描述 Scan Kit扫描专用底层码流接口需要鉴权,鉴权失败后功能还能用吗? 解决方案 如果已经申请过白名单,因为异常导致的鉴权失败会优先放通,保障业务成功。 2.问题描述 调用Scan Kit扫描专用底层码流接口会不会将二维码…

systemd-journal(三)之systemd.journal-fields

文章目录 写在前面概述用户日志字段(User Journal Fields)MESSAGEMESSAGE_IDPRIORITYCODE_FILE, CODE_LINE, CODE_FUNCERRNOINVOCATION_ID, USER_INVOCATION_IDSYSLOG_FACILITY, SYSLOG_IDENTIFIER, SYSLOG_PID, SYSLOG_TIMESTAMPDOCUMENTATIONTIDUNIT, …

C++11新特性之并发

std::thread c11引入了std::thread来创建线程&#xff0c;支持对线程join或者detach。直接看代码&#xff1a; #include <iostream> #include <thread>void threadFunction() {std::this_thread::sleep_for(std::chrono::seconds(1));std::cout << "I…

渗透测试——分享几个我常用渗透网站

前言 经常有小伙伴问我常用的渗透网站有哪些&#xff0c;花点时间整理出来&#xff0c;废话不多说&#xff0c;直接上网站。 一、雨苁 雨苁 这个网站从我接触网络安全一直在用&#xff0c;里面有几个很有用的工具如&#xff1a;在线地图情报搜集&#xff0c;开源情报信息收集…

【2G 50元/年 4G 618/3年!】支持比价必赔 送抽奖机会 京东云服务器推荐 附阿里云 腾讯云价格对比表

《最新对比表》已更新在文章头部—腾讯云文档&#xff0c;文章具有时效性&#xff0c;请以腾讯文档为准&#xff01; 【腾讯文档实时更新】云服务器1分钟教会你如何选择教程 https://docs.qq.com/document/DV0RCS0lGeHdMTFFV?tab000003 ​ 当前活动&#xff1a;采购季&#…

浮点数 向偶数舍入

二进制中间值是2/21 10.1110101011011保留四位偶数舍入 10.1110 101011011 保留部分 舍弃部分 舍弃部分101011011>中间值1 所以要保留部分进位 最终结果为 10.1111 10.1110 1 保留部分 舍弃部分 舍弃部分1中间值1 此时看保留部分最后一位,如果是奇数就保留…

供应链数字化转型:电子元器件商城的策略与实践

电子元器件商城通过供应链数字化转型&#xff0c;可以提高运营效率、降低成本、加速交付&#xff0c;并增强竞争力。以下是一些策略和实践建议&#xff1a; 数字化采购管理&#xff1a; 利用供应链管理软件或平台&#xff0c;实现采购过程的数字化管理。这包括供应商信息管理、…

软考 - 软件系统架构设计师 - 统一过程 RUP

概念 统一过程&#xff08;Rational Unified Process&#xff0c;简称RUP&#xff09;是一个面向对象且基于网络的程序开发方法&#xff0c;它是由IBM Rational软件公司&#xff08;原Rational Software Corporation&#xff09;发明并倡导的一种软件过程框架&#xff0c;属于迭…

揭秘抖音百科词条创建全攻略!

在当今社交媒体的盛行时代&#xff0c;抖音作为一款备受青睐的短视频平台&#xff0c;一直以来都备受人们的喜爱和追捧。而在抖音上的各种短视频内容之中&#xff0c;往往会涉及各种明星名人、品牌产品以及各种时事热点。为了更好地让用户获取相关信息&#xff0c;抖音百科词条…

闲鱼教程大全(价值2000)

实战干货视频教程 免费发送内容: "闲鱼", 获取提取码