美文网首页JavaScript
[EcmaScript] Object.defineProper

[EcmaScript] Object.defineProper

作者: 何幻 | 来源:发表于2016-03-07 07:20 被阅读35次

    <u></u>Object.defineProperty用了给对象创建一个新属性,或者修改一个已有的属性,
    并返回这个对象。

    Object.defineProperty(obj, prop, descriptor)
    

    用赋值方式创建的属性,
    可以被枚举(for...inObject.keys),值可以被修改和删除(delete)。
    Object.defineProperty创建的属性,默认是不可变的(immutable)。

    descriptor有两种:
    数据描述符(data descriptor),访问器描述符(accessordescriptor)
    它们都是普通的对象。

    数据描述符访问器描述符都有以下属性:

    configurable:false
    该描述符是否可以被修改,该属性是否可以被删除
    
    enumerable:false
    对象是否可以枚举到该属性
    

    数据描述符具有以下属性:
    value:属性值

    writable:false
    该属性的值是否可以通过赋值方式修改
    

    访问器描述符具有以下属性:

    get:undefined
    

    <u></u>get函数的返回值,作为属性值
    如果get:undefined或者不设置,则属性返回undefined

    set:undefined
    

    <u></u>set函数接受一个参数,这个参数是对属性新赋的值
    如果set:undefined或者不设置,则对属性赋值将不起作用

    兼容性:
    Firefox 4.0(2)
    Chrome 5
    IE 9[1]
    Opera 11.60
    Safari 5.1[2]

    [1] In Internet Explorer 8 only on DOM objects and with some non-standard behaviors.
    [2] Also supported in Safari 5, but not on DOM objects.

    相关文章

      网友评论

        本文标题:[EcmaScript] Object.defineProper

        本文链接:https://www.haomeiwen.com/subject/ucrnkttx.html