了解JavaScript 对象属性的标签
对象属性的标签
value(属性值), writable(属性可写), enumerable(属性可枚举), configurable(属性可配置), 这些属性标签使对象所持有的属性体现出不同的特性, 以便开发者开发使用.
value
value, 属性的值, 这个属性是最直观的体现, 一个属性我们使用的就是它的值, 这个值的类型可以是对象, 字符串, 值等任意类型. 如果未设置的话, 值会是undefined.
Object.defineProperty(person, 'name', {
configurable : false,
writable : false,
enumerable : true,
value : "Jianwei Wang"
});
document.write(person.name); //Jianwei Wang
"Jianwei Wang"就是person.name的值.
configurable
confirurable, 顾名思义可配置的, 意思就是在标签为true时这个属性允许修改各种属性标签配置(true or false), delete关键字是否可以删除这个属性, 如果标签为false, 那么是不允许修改标签配置的, delete也不可以使用了. 它的作用主要是配置属性的标签.
writable
writable, 可写入的, 如果这个设置为false, 那么这个属性将不允许写入, 也就无法将writable设置为新的值.
代码演示, 可写与可配置的特性.
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<script type="text/javascript">
//声明一个对象并初始化
var person = {
name : "wang",
age : 23
};
//定义一个key为hobby的属性, 设置为不可配置, 值为eat.
//未设置的标签值默认为false, 所以这个属性是不允许配置, 枚举, 以及写入的.
Object.defineProperty(person, 'hobby', {
value : "eat"
});
person.hobby = "run"; //写入属性为run
document.write(person.hobby); //eat, 说明写入失败
Object.defineProperty(person, 'hobby', {
writable : true
}); //对属性进行重新配置, 发现出错, 不允许重新配置可写入.
</script>
</body>
</html>
enumerable
enumerable, 可枚举的, 如果将其关闭, 那么这个属性将不会被遍历出来. 所以那些用于属性遍历的方法就都不是很好用了(for in, Object.keys等), 检测还是可以的(in, hasOwnProperty等). 所以总结起来就是enumerable关闭后的作用就是, 让你知道我有, 但是就是不给你看.
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb18030">
<title></title>
<script type="text/javascript">
var person = {
name : "Jianwei Wang",
age : 23
}; //声明并初始化对象
Object.defineProperty(person, "gender", {
configurable : true,
enumerable : true,
value : "male"
}); //配置一个新的属性gender, 设置为可配置, 可枚举的, 值为male
document.write(Object.keys(person) + "<br />"); //name, age, gender
Object.defineProperty(person, "gender", {
enumerable : false,
}); //重新配置gender为不可枚举属性.
document.write(Object.keys(person) + "<br />"); //name, age
document.write("gender" in person); //true
</script>
</head>
<body>
</body>
</html>
了解JavaScript 对象属性的标签的更多相关文章
- Javascript对象属性与方法汇总
Javascript对象属性与方法汇总 发布时间:2015-03-06 编辑:www.jquerycn.cn 详细介绍下,javascript对象属性与对象方法的相关知识,包括javascript字符 ...
- 删除要被替换的元素的所有事件处理 程序和 JavaScript 对象属性
使用本节介绍的方法替换子节点可能会导致浏览器的内存占用问题,尤其是在 IE 中,问题更加明显.在删除带有事件处理程序或引用了其他 JavaScript 对象子树时,就有可能导致内存占用问题.假设 某个 ...
- JavaScript对象属性的基础教程指南
JavaScript是使用“对象化编程”的,或者叫“面向对象编程”的.所谓“对象化编程”,意思是把JavaScript能涉及的范围划分成大大小小的对象,对象下面还继续划分对象直至非常详细为止,所有的编 ...
- JavaScript对象属性访问的两种方式
JavaScript对象属性访问的两种方式 object.attribute object["attribute"] 例如: var employees = [ { "f ...
- JavaScript 对象属性
JavaScript 对象属性 属性中的 . 和 [ ](点 和 方括号)的区别 . :取对象自身的属性值: [ ]:括号内容可以是变量: var obj = {}; obj.name = 'Twx ...
- js 技巧 (六)JavaScript[对象.属性]集锦
JavaScript[对象.属性]集锦 SCRIPT 标记 用于包含javascript代码. 语法 属性 LANGUAGE 定义脚本语言 SRC 定义一个URL用以指定以.JS结尾的文件 windo ...
- javascript对象属性和数组的访问
javascript对象属性的访问 假如有对象test:var test = { "a":1, "b":2};直接访问对象test的属性a的值,有两种方法: ...
- JavaScript对象属性(一)
对象object 对象和数组很相似,数组是通过索引来访问和修改数据,对象是通过属性来访问和修改数据的. 这是一个示例对象: var cat = { "name": "W ...
- JavaScript对象属性 constructor
对象属性 constructor 属性返回对创建此对象的数组函数的引用; constructor(构造函数) 在对象创建或实例化时候被调用的方法.通常使用该方法来初始化数据成员和所需资源.构造函数不 ...
随机推荐
- 【腾讯优测干货分享】安卓专项测试之GPU测试探索
本文来自于Dev Club 开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57c7ffdc0569a1191bce8a63 作者:章未哲——腾讯SNG质 ...
- 关于我 — About Me
个人简介 姓名:周旭龙 关注:.NET开发技术.Web前端技术 邮箱:edisonchou@hotmail.com GitHub: https://github.com/edisonchou 主要经历 ...
- ABP源码分析二十:ApplicationService
IApplicationService : 空接口,起标识作用.所有实现了IApplicationService 的类都会被自动注入到容器中.同时所有IApplicationService对象都会被注 ...
- 【翻译】用AIML实现的Python人工智能聊天机器人
前言 用python的AIML包很容易就能写一个人工智能聊天机器人. AIML是Artificial Intelligence Markup Language的简写, 但它只是一个简单的XML. 下面 ...
- Atitit 2016年attilax事业成就表
Atitit 2016年attilax事业成就表 1.1. 项目管理模型---Rem模型2 1.2. 项目管理模型---vsi模型val specs implt3 1.3. 研发体系完善(gui与游戏 ...
- 使用nwjs开发桌面应用之Hello,World!
今天发现原来JavaScript也可以用来开发桌面应用程序,顿时有一种很牛逼的感觉,于是马上就开始了Hello,World!,感受一下JavaScript的强大. 可以用来开发桌面应用的js框架有三种 ...
- CSS 定位之绝对与相对
static,relative,absolute,fixed含义 static(静态定位):元素框正常生成.块级元素生成一个矩形框,作为文档流的 的一部分,行内元素则会常见一个或多个行框,至于其父元素 ...
- C/S架构和B/S架构的概念和区别
C/S 架构 C/S 架构是一种典型的两层架构,其全程是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端 ...
- 【JAVA框架】Hibernate 与Mybatis 区别
Hibernate Mybatis 简介 区别 与联系 欢迎提出见解及转载. 1 简单简介 1.1 Hibernate 框架 Hibernate是一个开放源代码的对象关 ...
- 前端学HTTP之数据传输
× 目录 [1]客户机处理 [2]集线器处理 [3]路由器1处理[4]路由器2处理[5]交换机处理[6]服务器处理[7]反向传输 前面的话 上一篇中,介绍了网络基础.本文将详细介绍客户机在浏览网页ab ...