对象属性的标签

  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 对象属性的标签的更多相关文章

  1. Javascript对象属性与方法汇总

    Javascript对象属性与方法汇总 发布时间:2015-03-06 编辑:www.jquerycn.cn 详细介绍下,javascript对象属性与对象方法的相关知识,包括javascript字符 ...

  2. 删除要被替换的元素的所有事件处理 程序和 JavaScript 对象属性

    使用本节介绍的方法替换子节点可能会导致浏览器的内存占用问题,尤其是在 IE 中,问题更加明显.在删除带有事件处理程序或引用了其他 JavaScript 对象子树时,就有可能导致内存占用问题.假设 某个 ...

  3. JavaScript对象属性的基础教程指南

    JavaScript是使用“对象化编程”的,或者叫“面向对象编程”的.所谓“对象化编程”,意思是把JavaScript能涉及的范围划分成大大小小的对象,对象下面还继续划分对象直至非常详细为止,所有的编 ...

  4. JavaScript对象属性访问的两种方式

    JavaScript对象属性访问的两种方式 object.attribute object["attribute"] 例如: var employees = [ { "f ...

  5. JavaScript 对象属性

    JavaScript 对象属性 属性中的 . 和 [ ](点 和 方括号)的区别 .  :取对象自身的属性值: [ ]:括号内容可以是变量: var obj = {}; obj.name = 'Twx ...

  6. js 技巧 (六)JavaScript[对象.属性]集锦

    JavaScript[对象.属性]集锦 SCRIPT 标记 用于包含javascript代码. 语法 属性 LANGUAGE 定义脚本语言 SRC 定义一个URL用以指定以.JS结尾的文件 windo ...

  7. javascript对象属性和数组的访问

    javascript对象属性的访问 假如有对象test:var test = {  "a":1,  "b":2};直接访问对象test的属性a的值,有两种方法: ...

  8. JavaScript对象属性(一)

    对象object  对象和数组很相似,数组是通过索引来访问和修改数据,对象是通过属性来访问和修改数据的. 这是一个示例对象: var cat = { "name": "W ...

  9. JavaScript对象属性 constructor

     对象属性 constructor 属性返回对创建此对象的数组函数的引用; constructor(构造函数) 在对象创建或实例化时候被调用的方法.通常使用该方法来初始化数据成员和所需资源.构造函数不 ...

随机推荐

  1. [转]Java实现定时任务的三种方法

    在应用里经常都有用到在后台跑定时任务的需求.举个例子,比如需要在服务后台跑一个定时任务来进行非实时计算,清除临时数据.文件等.在本文里,我会给大家介绍3种不同的实现方法: 普通thread实现 Tim ...

  2. CSharpGL(26)在opengl中实现控件布局/渲染文字

    CSharpGL(26)在opengl中实现控件布局/渲染文字 效果图 如图所示,可以将文字.坐标轴固定在窗口的一角. 下载 CSharpGL已在GitHub开源,欢迎对OpenGL有兴趣的同学加入( ...

  3. Entity Framework 与 面向对象

    说要分享,我了个*,写了一半放草稿箱了两个星期都快发霉了,趁着周末写完发出来吧. 文章分为五部分: 基础.类讲述的是用到的一些EF与面向对象的基础: 业务是讲怎么划分设计业务: 设计模式和工作模式讲述 ...

  4. Android View.setId(int id) 用法

    Android View.setId(int id) 用法 当要在代码中动态的添加View并且为其设置id时,如果直接用一个int值时,Studio会警告. 经过查询,动态设置id的方法有两种; 1. ...

  5. HTML5系列目录

    1. HTML5与HTML4的区别 2. HTML5结构 3. HTML5表单 4. HTML5文件 5. HTML5绘图 6. HTML6本地存储

  6. JavaScript高级编程 (1) - javscript是什么

    <重温javascript>这是一系列 javascript 的学习笔记,部分内容摘自书本或者网络,我这里只是基于自己的理解进行了梳理整理. 一个完整的 javscript 实现是由以下3 ...

  7. 在Linux Mint上安装node.js和npm

    1.安装Node.js 前端开发过程中,很多项目使用npm的http-server的模块来运行一个静态的服务器,我个人在Dell的笔记本上安装的是Linux Mint最新版本,所以想尝试一下在Linu ...

  8. c 网络与套接字socket

    我们已经知道如何使用I/O与文件通信,还知道了如何让同一计算机上的两个进程进行通信,这篇文章将创建具有服务器和客户端功能的程序 互联网中大部分的底层网络代码都是用C语言写的. 网络程序通常有两部分组成 ...

  9. JavaScript 函数节流和函数去抖应用场景辨析

    概述 也是好久没更新 源码解读,看着房价蹭蹭暴涨,心里也是五味杂陈,对未来充满恐惧和迷茫 ...(敢问一句你们上岸了吗) 言归正传,今天要介绍的是 underscore 中两个重要的方法,函数节流和函 ...

  10. [Spring]04_最小化Spring XML配置

    4.1 自动装配 Bean Spring 装配 bean 时,有时非常明确,就是需要将某个 bean 的引用装配给指定属性. 例如,若应用上下文中只有一个 javax.sql.DataSource 类 ...