一、什么是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

最新文章

  1. php面向对象中的几个基本定义
  2. 在Linux上编译dotnet cli的源代码生成.NET Core SDK的安装包
  3. Flume NG Getting Started(Flume NG 新手入门指南)
  4. <<< java如何调用系统程序
  5. C#发送邮件
  6. WebService 实例
  7. golang笔记——包
  8. Selenium2+python自动化10-登录案例
  9. blender2.7.4安装three.js插件
  10. POST多个参数到Web API控制器
  11. 8. Shell 文件包含
  12. 学习《ASP.NET MVC5高级编程》——基架
  13. Map的clear与new Map的区别
  14. 微信小程序----没有 DOM 对象,一切基于组件化 ---- mpvue
  15. ibatisNet MERGE INTO ORA-00911: 无效字符
  16. 【redis专题(10)】KEY设计原则与技巧
  17. 【CF1042D】Petya and Array 离散化+树状数组
  18. mysql 查询重复值
  19. [原][osg]osg文件与osgb文件的区别
  20. 如何让cxgrid既能充满又能根据内容进行宽度调整?

热门文章

  1. 第五次作业+4505B寝室队
  2. cobbler-web 界面技术详解
  3. 1使用 vue-cli 搭建项目(cp)
  4. bzoj2095-Bridge
  5. JS中JSON对象和JSON字符串的相互转化
  6. P4645 [COCI2006-2007 Contest#3] BICIKLI
  7. kiki's game HDU - 2147(找规律)
  8. 【2018ICPC沈阳】
  9. 【ARC083E】Bichrome Tree
  10. 洛谷 P2144 [FJOI2007]轮状病毒