JS中的getter与setter
2024-09-19 02:46:03
一、什么是getter和setter
- getter 是一种获得属性值的方法,setter是一种设置属性值的方法
- getter负责查询值,它不带任何参数,setter则负责设置键值,值是以参数的形式传递,在他的函数体中,一切的return都是无效的
- get/set访问器不是对象的属性,而是属性的特性,特性只有内部才用,因此在javaScript中不能直接访问他们,为了表示特性是内部值用两队中括号括起来表示如[[Value]]
- 对象的属性又可分为对象属性和访问器属性(参考资料: https://www.cnblogs.com/absolute-child/p/7188417.html)
二、使用方式
2.1 set/get
var person = {
_name: '',
get name() { return this._name },
set name(n) { this._name = n }
} // 测试
person.name // 输出 --> ''
person.name = 'Zhangsan'
person.name // 输出 --> Zhangsan
2.2 Object.defineProperty
var person = function() {
var _name = ' ';
var obj = {};
Object.defineProperty(obj, 'name', {
configurable: true,
enumerable: true,
get: function() {
return _name;
},
set: function(n) {
_name = n;
}
})
return obj;
}();
person.name = "Zhangsan";
person.name // 输出 --> Zhangsan
最新文章
- php面向对象中的几个基本定义
- 在Linux上编译dotnet cli的源代码生成.NET Core SDK的安装包
- Flume NG Getting Started(Flume NG 新手入门指南)
- <;<;<; java如何调用系统程序
- C#发送邮件
- WebService 实例
- golang笔记——包
- Selenium2+python自动化10-登录案例
- blender2.7.4安装three.js插件
- POST多个参数到Web API控制器
- 8. Shell 文件包含
- 学习《ASP.NET MVC5高级编程》——基架
- Map的clear与new Map的区别
- 微信小程序----没有 DOM 对象,一切基于组件化 ---- mpvue
- ibatisNet MERGE INTO ORA-00911: 无效字符
- 【redis专题(10)】KEY设计原则与技巧
- 【CF1042D】Petya and Array 离散化+树状数组
- mysql 查询重复值
- [原][osg]osg文件与osgb文件的区别
- 如何让cxgrid既能充满又能根据内容进行宽度调整?