zoukankan      html  css  js  c++  java
  • js Object方法小结

      1. Object.defineProperty(obj,prop,{
                    value:...,
                    writable:boolean,//可写;
                    configurable:boolean,
                    enumerable:boolean,
                    get:function(){reuturn ...};
                    set:function(){}
                })
                value/writable和get/set是不能共存的;

                get和set还有另一种写法:
                var myObject = {
                    get a() {
                        return this._a_;
                    },
                    set a(val) {
                        this._a_ = val * 2;
                    }
                };

                2. Object.preventExtensions(obj);//禁止对象扩展(禁止添加新属性);

                3. Object.seal(obj);//密封对象;现有对象上调用Object.preventExtensions(..) 并把所有现有属性标记为 configurable:false。密封之后不仅不能添加新属性,也不能重新配置或者删除任何现有属性(虽然可以
    修改属性的值)。

                4. Object.freeze(obj);//这个方法实际上会在一个现有对象上调用Object.seal(..) 并把所有“数据访问”属性标记为 writable:false,这样就无法修改它们
    的值。
                5. Object.keys(..) 会返回一个数组,包含所有可枚举属性,Object.getOwnPropertyNames(..)
    会返回一个数组,包含所有属性,无论它们是否可枚举。
        6. in 和 hasOwnProperty(..) 的区别在于是否查找 [[Prototype]] 链,然而,Object.keys(..) 和 Object.getOwnPropertyNames(..) 都只会查找对象直接包含的属性。
        7. for in 不会遍历enumrable=false的属性,但 in 判断不管enumrable的值为true或false。if( a in b){...}
  • 相关阅读:
    AtomicInteger原理分析
    packageinfo.java介绍
    SpringBoot 日志、配置文件、接口数据脱敏
    Gulp自动化构建分析
    RPC本质思考
    ES6 之 let 与 const
    Java属性转换工具分析
    AMQP协议模型及相关组件介绍
    Spring Bean生命周期分析
    PHP 脚本后台执行
  • 原文地址:https://www.cnblogs.com/iroading/p/11533839.html
Copyright © 2011-2022 走看看