第六章 对象-javaScript权威指南第六版(四)

时间:2021-11-11 16:58:46

6.6 属性getter和setter

  对象属性是由名字、值和一组特性(attribute)构成的。

  getter和setter定义的属性称做"存取器属性"(accessor propterty)

  var o={

      data_prop:value,

      get accessor_prop(){函数体};

      set accessor_prop(a)  {函数体};

    }

读o.accessor_prop

写o.accessor_prop=value;

6.7 属性的特性

  数据属性的4个特性分别是它的:

    值(value)

    可写性(writable)

    可枚举(enumerable)

    可配置性(configurable)

存取器属性的4个特性是

     get

set

enumerable

configurable

getOwnPropertyDescriptor()

Object.getOwnPropertyDescriptor(x,"a")
      result:    Object {value: 1, writable: true, enumerable: true, configurable: true}

  var o={};

  Object.defineProperty(o,"x",{ value:1,

                writable:true,

                enumerable:false,

                configurable:true

                });

  Object.defineProperties({},{x:{value:1,writable:true,enumerable:true,configurable:true},

               y:{value:1,writable:true,enumerable:true,configurable;true}});

  gettert和setter的老式API

        __lookupGetter__()

        __lookupSetter__()

        __defineGetter__()

        __defineSetter__()

Object.getPrototypeOf(y)  返回y的原型。

6.8 对象的三个属性

  原型 (prototype)

  类(class)

  可扩展性(extensible attribute)

6.8.1 原型属性

  可以用isPrototypeOf 是否继承于那一个原型。

6.8.2类属性

  对象的类属性是一个字符串,用以表示 对象的类型信息。