JS-OO-数据属性,访问器属性
2024-08-31 20:07:15
一、数据属性
Configurable:表示能否通过Delete删除属性从而重新定义属性,能否修改属性的特性,能否把属性修改为访问器属性。默认true。
Enumerable:表示能否通过for-in循环返回属性。默认true。
Writable:表示能否修改属性的值。默认true。
Value:包含这个属性的数据值。默认undefined。
要修改属性默认值,必须使用Object.defineProperty()方法。
参数:属性所在的对象,属性的名字和一个描述符对象(descriptor:configurable、enumerable、writable、value之一)。
例:
var person = {};
Object.defineProperty(person, "name", {writable:false,value:"chensuqian"});//name值是只读的
alert(person.name);
person.name="hello world";
alert(person.name);
两次值相同。
二、访问器属性
Configurable:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为数据属性。默认true。
Enumerable:表示能否通过for-in循环返回属性。默认true。
Get:读取属性时调用。默认undefined。
Set:写入属性时调用。默认undefined。
访问器属性不能直接定义,必须使用Object.defineProperty()方法定义。
var book = { _year: 2004, edition: 1 };
Object.defineProperty(book, "year",
{
get: function () { return this._year; },
set: function (value) {
if (value > 2004) {
this._year = value;
this.edition += value - 2004;
}
}
});
book.year = 2015;
alert(book.edition);
最新文章
- Java使用正则表达式取网页中的一段内容(以取Js方法为例)
- libnode 0.4.0 发布,C++ 语言版的 Node.js
- Android判断App是否在前台运行(转)
- Python下调用Linux的Shell命令
- Oracle EBS 预警系统管理
- LoadLibrary 失败 GetLastError 126
- Caffe︱构建lmdb数据集、binaryproto均值文件及各类难辨的文件路径名设置细解
- sau交流学习社区第三方登陆github--oauth来实现用户登录
- 用servlet进行用户名和密码校验
- Scrapy 框架 增量式
- echarts地图散点高亮弹框制作
- 神州数码RIP路由协议
- ES5新增数组方法every()、some()、filter()、map()
- [C#]非阻塞监听键盘输入
- redis-Sentinel配置
- Android网络:开发浏览器(二)——功能完善之书签功能
- Canvas制作的下雨动画
- Java学习个人备忘录之多态
- 集成ssm+shiro出现的 问题
- Spring MVC的测试
热门文章
- javafx KeyCombination
- IFC数据模式架构的四个概念层
- 【2017 Multi-University Training Contest - Team 4】Time To Get Up
- JNDI学习总结(4)——Tomcat下使用Druid配置JNDI数据源
- [AngularFire] Firebase OAuth Login With Custom Firestore User Data
- [React] Define defaultProps and PropTypes as static methods in class component
- oracle 10g standby database 实时应用 redo 数据
- sqlserver存储过程实现多表分页
- php学习笔记5
- JavaScript学习总结(6)——js弹出框、对话框、提示框、弹窗总结