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){...}
  • 相关阅读:
    Vue 环境配置
    Vue-think脚手架
    搭建vue环境网站
    数组 还是 字符串
    javascript jquery console调试方法说明
    获取 stoken 或者id MVC写法
    它山之石
    Android学习笔记_44_apk安装、反编译及防治反编译
    (转)超级实用且不花哨的js代码大全
    Android学习笔记_43_网络通信之文件断点上传
  • 原文地址:https://www.cnblogs.com/iroading/p/11533839.html
Copyright © 2011-2022 走看看