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的属性也不可以
  • 相关阅读:
    Debian/Kali下Subversion的配置
    Linux下解压Windows中的压缩包乱码解决办法
    JavaSocket全双工通信 问题 待解决
    MYSQL学习笔记
    Java Socket 全双工通信
    Kali2017安装后的那些事
    nginx的一次安装与配置
    解决1130 Host 'localhost' is not allowed to connect to this MySQL server
    SimpleDateFormat 和 LocalDate、LocalTime 以及时间大小比较简单示例
    java 线程池 ExeutorService
  • 原文地址:https://www.cnblogs.com/wofeiwofei/p/5063323.html
Copyright © 2011-2022 走看看