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);
  • 相关阅读:
    Free DIY Tour_DP
    找出直系亲属_floyd
    Constructing Roads In JGShining's Kingdom_最长上升子序列
    买卖股票_线性dp
    Common Subsequence_公共子序列
    Doing Homework_状态压缩&&位运算
    猴子选大王
    卡片游戏
    Java 2
    Java 1
  • 原文地址:https://www.cnblogs.com/xwoder/p/5770725.html
Copyright © 2011-2022 走看看