美文网首页
JS - 对象(4)

JS - 对象(4)

作者: sunorry | 来源:发表于2015-02-01 17:58 被阅读21次

属性标签

属性级的权限设置

查看对象上的属性标签

Object.getOwnPropertyDescriptor({
    pro: true
}, 'pro');
// 可写,修改; 可枚举; 可删除
// Object {value: true, writable: true, enumerable: true, configurable: true}
Object.getOwnPropertyDescriptor({
    pro: true
}, 'a'); // undefined

var person = {};
Object.defineProperty(person, 'name', {
    configurable: false,
    writable: false,
    enumerable: true,
    value: 'sunorry'
});

person.name; // sunorry
person.name = 1;
person.name; //still sunorry
delete person.name; //false

Object.defineProperty(person, 'type', {
    configurable: true,
    writable: true,
    enumerable: false,
    value: 'Object'
});

// 返回对象的key
Object.keys(person); // ['name'], type不可枚举

实际一点的例子

//默认 false
Object.defineProperties(person, {
    title: {value: 'fe', enumerable: true},
    corp: {value: 'Qunar', enumerable: true},
    salary: {value: 1000, enumerable: true, writable: true}
});

Object.getOwnPropertyDescriptor(person, 'salary');
// Object {value, 1000, writeable: true, enumerable: true, configurable: false}
Object.getOwnPropertyDescriptor(person, 'corp');
// Object {value, 'Qunar', writeable: false, enumerable: true, configurable: false}

复杂点


Object.defineProperties(person, {
    title: {value: 'fe', enumerable: true},
    corp: {value: 'Qunar', enumerable: true},
    salary: {value: 1000, enumerable: true, writable: true},
    luck: {
        get: function () {
            return Math.random() > 0.5 ? 'good' : 'bad';
        }
    },
    promote: {
        set: function(level) {
            this.salary *= 1 + level * 0.1
        }
    }
});

Object.getOwnPropertyDescriptor(person, 'salary');
// Object {value, 1000, writeable: true, enumerable: true, configurable: false}
Object.getOwnPropertyDescriptor(person, 'corp');
// Object {value, 'Qunar', writeable: false, enumerable: true, configurable: false}

person.salary; // 1000
person.promote = 2;
person.salary; // 1200
Paste_Image.png

相关文章

  • JS - 对象(4)

    属性标签 属性级的权限设置 查看对象上的属性标签 实际一点的例子 复杂点

  • java基础-day59-Jquery

    jQuery入门 1)了解jQuery的背景和特点2)理解js对象和jQuery对象的区别 4)js对象和jQue...

  • 2019-11-27

    1.js 对象属性 2.js 对象方法 3.对象访问器 4.对象构造器 5.对象构造器加属性 6.对象方法 7.j...

  • day05-js05

    1、选择器 3、js对象和jquery对象转化 4、##文档处理appendappendToprependprep...

  • js的基本语法

    1.helloworld 2.js的基本语法 3.js的对象 4.批量产生对象 5.批量生产对象2 6.松散的语法

  • 事件

    1、鼠标的移入移除js部分 2、鼠标事件js部分 3、事件对象js部分 4、键盘事件js部分 5、输入框事件js部...

  • event对象

    Js的event对象用来描述Js的事件,它主要作用于IE和NN4(Netscape Navigator4)以后的各...

  • JS面向对象精要(二)_函数

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

  • JS面向对象精要(三)_理解对象

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

  • JS面向对象精要(四)_构造函数和原型对象

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

网友评论

      本文标题:JS - 对象(4)

      本文链接:https://www.haomeiwen.com/subject/doolxttx.html