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){...}
  • 相关阅读:
    C#之集合常用扩展方法与Linq
    PHP核心之MVC设计模式
    Javascript高级之变量
    Javascript高级之console调试
    Javascript高级之概述
    MySQL数据库之PDO扩展
    MySQL数据库之MySQL扩展
    MySQL数据库之数据库备份与还原
    MySQL数据库之预处理
    MySQL数据库之函数
  • 原文地址:https://www.cnblogs.com/iroading/p/11533839.html
Copyright © 2011-2022 走看看