JavaScript中,对象包括3个特性,分别为,可扩展性,class标识符,属性。

如果对象的可扩展性为false,则不可为对象动态的添加属性。
 
对象包含分为存取器属性和值属性。存取属性为 {get r(){/*函数实现*/},set r(){/*函数实现*/}} 存取器属性自身不能保存值,set相当于对对象中其他的属性进行更改。get中也可以返回其他属性的值。属性的特性值为 可写性,可配置性,value,可枚举性。存取器属性使用get,set属性来替换可写性和value.
在没有实现ES5的浏览器中,使用__lookupGetter____lookupSetter__,方法第一个参数为属性名,第二个参数为function
来查看get set属性 通过 __lookupGetter__('x')__ 参数为属性名
通过Object.getownpropertydescriptor(对象,属性名) ,Object.defineProperty用此方法来添加属性,可以配置特性值。如果属性已存在,则修改特性值。Object.defineProperties 定义多个属性(对象,{
属性名:{特性值}
}) 一旦可配置性修改为false,则不可再次修改可配置性。其余特性修改有规则
可配置性为false,可写行可有true修改为false.其余基本都是不可变的。
 
对象.isPrototypeOf(a)指定对象原形链上是否有a,和 instanceof工作原理一样
对象.propertyIsEnumerable(属性) 属性是否为可枚举
对象.hasOwnProperty(属性) 属性是否为自有属性
 
in 关键词可以检测对象及其原形链上是否有某个属性
 
var 声明的变量不可以用delete删除
可配置为false的属性也不可以

JavaScript对象中的属性(可写,可配置,可枚举,value,getter,setter)的更多相关文章

  1. JavaScript 深入了解对象中的属性

    本篇主要介绍JS中对象的属性,包括:属性的分类.访问方式.检测属性.遍历属性以及属性特性等内容. 目录 1. 介绍:描述属性的命名方式.查找路径以及分类 2. 属性的访问方式:介绍'.'访问方式.'[ ...

  2. JavaScript对象就是一组属性(方法)的集合

    在JavaScript中,每个对象可以看作是多个属性(方法)的集合,引用一个属性(方法) 很简单,即: 对象名.属性(方法)名 除此之外,还可以用方括号的形式来引用: 对象名[“属性(方法)名”] 注 ...

  3. JS基础_枚举对象中的属性

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. JavaScript对象的property属性详解

    JavaScript对象的property属性详解:https://www.jb51.net/article/48594.htm JS原型与原型链终极详解_proto_.prototype及const ...

  5. C#验证对象中的属性是否为空的共通方法

    在后台接口处理时,经常需要对请求的参数做验证.因此提取了共通方法,方便进行判断. /// <summary> /// 数据验证工具类 /// </summary> public ...

  6. 使用 history 对象和 location 对象中的属性和方法制作一个简易的网页浏览工具

    查看本章节 查看作业目录 需求说明: 使用 history 对象和 location 对象中的属性和方法制作一个简易的网页浏览工具 实现思路: 使用history对象中的 forward() 方法和 ...

  7. [记录] javascript 对象中使用setTimeout

    参考:Javascript对象中关于setTimeout和setInterval的this介绍 使用最后一个方法终于弄好了,简直了,在对象中使用setTimeout原来是这样的 做的是分钟倒计时,倒数 ...

  8. spring data mongodb中,如果对象中的属性不想加入到数据库字段中

    spring data mongodb中,如果对象中的属性不想加入到数据库字段中,可加@Transient注解,声明为透明属性 spring data mongodb 官网帮助文档 http://ww ...

  9. 【JavaScript】浅析JavaScript对象如何添加属性和方法

    向JavaScript类中添加属性和方法,最直观的做法就是在类中定义属性和方法.JavaScript是一门弱语言,除了直接定义还可以用prototype来添加. 下面介绍从外部向JavaScript添 ...

随机推荐

  1. logstash5.x配置

    logstash --help --可以通过此命令看到所有命令 -f, --path.config --配置文件路径 -e, --config.string --可直接运行的配置字符串 -w, --p ...

  2. Code First is a bad name,这些年我们对Code First的理解都错了 !很震惊吧?

    当看到这个时,我也很震惊.估计绝大多数的人和我一样,这些年来,一直不知道Code Fisrt的真实意义.下面是一篇讲述此情况的译文,欢迎围观,若有翻译不当的地方,请指正,谢谢.如果被惊到了,请点赞!, ...

  3. SQL2005中的事务与锁定(八)- 转载

    ------------------------------------------------------------------------ -- Author : happyflystone - ...

  4. 05-IP核应用之计数器——小梅哥FPGA设计思想与验证方法视频教程配套文档

    芯航线--普利斯顿队长精心奉献   实验目的:了解FPGA的IP核相关知识并以计数器IP核为例学会基本IP使用的流程 实验平台:无 实验原理:     IP核(Intellectual Propert ...

  5. mysql查看存储过程

    查询数据库中的存储过程 方法一: select `name` from mysql.proc where db = 'your_db_name' and `type` = 'PROCEDURE' 方法 ...

  6. js !!条件判断或运算的作用

    今天看到一个判断语句非常奇怪: if(!!selected){} //为什么是双'!'号呢? 自己查了下资料终于明白了这其中的原理: 原来'!!'会将表达式转为Boolean类型的数据. 如果'!un ...

  7. Spine批量导出Command line Export

    1.准备工作及介绍 时间有点紧张,写的不是很详细,请见谅. 当前版本是2.2以上,购买版的.试用版的无法试用Command line Both Spine and the Spine launcher ...

  8. img的hover事件闪动

    今天给同学写一个相册照片鼠标浮动显示细节的效果,遇到了闪动的bug,也顺利解决,就写下来跟大家分享. 我使用的是'标签:hover + 标签'的形式,如果使用jquery的mouseover.mous ...

  9. noi 2989 糖果

    题目链接:http://noi.openjudge.cn/ch0206/2989/ 首先,数据很大,直接用背包会re. 这里增加的是对%k 的余数维度.f[i][j] 表示前 i 种糖果取到总颗数模 ...

  10. mac攻略(二) -- 简单配置php开发环境

    最简单直接的方式还是使用 Mac 上自带的 Apache 和 PHP.   1.启动 Apache 1>启动apache $sudo apachectl start; 2>启动后,在浏览器 ...