zoukankan      html  css  js  c++  java
  • javascript 理解对象--- 定义多个属性和读取属性的特性

    一 定义多个属性

      ECMAScript5 定义了一个Object.defineProperties()方法,用于定义多个属性。此方法接受两个对象参数:

        第一个对象:要添加或修改其属性的对象

        第二个对象的属性与第一个对象的要添加或修改的属性一一对应 :

    例如:
    var
    book ={}; Object.defineProperties(book,{ _year:{ writable:true, value :2004 }, edition:{ writable:true, value :1 }, year : { get :function(){ return this._year; }, set :function(value){ if(value > 2004){ this._year = value; this.edition += value -2004 } } } });

    支持Object.defineProperties()方法的浏览器有IE9+ Firefox+ Safari5+,Opera12+ 和 Chrome;

    二 读取属性的特性

       ECMAScript5方法:Object.getOwnPropertyDescriptor()方法,可以取得给定属性的描述符,接受两个参数(属性所在对象 、 要读取其描述符的属性名称)

    var book ={};
    Object.defineProperties(book,{
        _year:{
                 value :2004 
        },
        edition:{
                 value :1 
        },
        year : {
                 get :function(){
                     return this._year;
                 },
               set :function(value){
                      if(value > 2004){
                            this._year = value;
                            this.edition += value -2004 
                      }
               }
        }
    });
    //数据属性
    var descirptor = Object.getOwnPropertyDescirptor(book,"_year"); alert(descirptor.value);//2004 alert(descriptor.configurable);//false alert(typeof descriptor.get); // "undefined"
    //访问属性 var descirptor = Object.getOwnPropertyDescirptor(book,"year"); alert(descirptor.value);//2004 alert(descriptor.configurable);//false alert(typeof descriptor.get); // "function"

    支持Object.getOwnPropertyDescriptor()方法的浏览器有IE9+ Firefox+ Safari5+,Opera12+ 和 Chrome;

  • 相关阅读:
    基本数据类型的包装类(wrapper class)、自动的装箱和拆箱、时间处理相关类、Math类、File类、枚举类
    数组、String、Stringbuilder、StringBuffer
    Introduction into browser events
    Javascript join example by separator
    text-transform
    JQuery :Not() Selector Example
    jQuery html() example
    jQuery
    $("selector").slice(start, end)
    位置博弈
  • 原文地址:https://www.cnblogs.com/wangshichuan/p/5881882.html
Copyright © 2011-2022 走看看