zoukankan      html  css  js  c++  java
  • JavaScript之定义属性

    方式1

    使用Object.defineProperty定义单个属性

    'use strict';
    
    var person = { };
    
    // 定义数据属性
    Object.defineProperty(person, '_age', {
        configurable: true,
        writable: true,
        enumerable: true,
        value: -1,
    });
    
    // 定义访问器属性
    Object.defineProperty(person, 'age', {
        configurable: false,
        enumerable: false,
        get: function () {
            return this._age;
        },
        set: function (newValue) {
            if (newValue <= 0 || newValue > 100) {
                this._age = 18;
            } else {
                this._age = newValue;
            }
        }
    });
    
    // -1
    console.log(person.age);
    
    person.age = 0;
    // -18
    console.log(person.age);
    
    person.age = 30;
    // 30
    console.log(person.age);

    方式2

    使用Object.defineProperties方法定义多个属性

    'use strict';
    
    var person = { };
    
    Object.defineProperties(person, {
        _age: {
            configurable: true,
            writable: true,
            enumerable: true,
            value: -1,
        },
        age: {
            configurable: false,
            enumerable: false,
            get: function () {
                return this._age;
            },
            set: function (newValue) {
                if (newValue <= 0 || newValue > 100) {
                    this._age = 18;
                } else {
                    this._age = newValue;
                }
            }
        }
    });
    
    // -1
    console.log(person.age);
    
    person.age = 0;
    // -18
    console.log(person.age);
    
    person.age = 30;
    // 30
    console.log(person.age);
  • 相关阅读:
    ZOJ3213-Beautiful Meadow
    ZOJ3256-Tour in the Castle
    ZOJ3466-The Hive II
    hdu3377-Plan
    fzu1977-Pandora Adventure
    ural1519-Formula 1
    poj2914-Minimum Cut
    51nod-1220-约数之和
    51nod-1222-最小公倍数计数
    【html】【6】div浮动float
  • 原文地址:https://www.cnblogs.com/xwoder/p/5770725.html
Copyright © 2011-2022 走看看