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);
  • 相关阅读:
    六、Redis主从复制 
    五、AOF持久化
    四、RDB持久化
    三、数据类型
    二、redis的配置文件介绍
    第八章、堆
    九、补充
    八、Filter
    七、监听器和国际化
    六、JDBC
  • 原文地址:https://www.cnblogs.com/xwoder/p/5770725.html
Copyright © 2011-2022 走看看