zoukankan      html  css  js  c++  java
  • JavaScript对象中的属性(可写,可配置,可枚举,value,getter,setter)

    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的属性也不可以
  • 相关阅读:
    Mac os下安装pycurl
    Mac os 10.9下面配置JAVA_HOME
    同步,异步,阻塞,非阻塞
    Python处理XML
    Apriori算法在购物篮分析中的运用
    Python抓取双色球数据
    为什么这么多Python框架
    Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明
    ubuntu 开机自动挂载分区
    VIM 配置随手记
  • 原文地址:https://www.cnblogs.com/wofeiwofei/p/5063323.html
Copyright © 2011-2022 走看看