• js中的Object对象


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <script>
    
               var  obj={
                   name:'zain',
                   age:26
               };
    
               Object.defineProperty(obj,"__abc__",{
                    value:2,
                    configurable:false,          //是否可配置
                    enumerable:false,          //是否可枚举,迭代
                    writable:false               //是否可以改变值
               });
    
    
    
           Object.defineProperty(obj,"show",{
              
              configurable:false,          //是否可配置
              enumerable:true,          //是否可枚举,迭代
              writable:true
                           //是否可以改变值
         });
            //    var __a__={};      //这个对象最好别操作,私有受保护的。
            //    var __DEFS__={};   // __代表受保护,全大写代表常量
    
            //    console.log(obj);
    
    
    
    
    
            // Object.keys
            // Object.getOwnPropertyNames
            // Object.getOwnPropertyDescriptor
            // Object.propertyIsEnumerable
            // Object.setPrototypeOf
            // Object.getPrototypeOf
            // Object.hasOwnProperty
    
    
    //返回该对象可枚举的属性
            var keys=Object.keys(obj);
             console.log(keys);
    
    
    //返回该对象所有的属性,__proto__除外。
        var names=Object.getOwnPropertyNames(obj);
        console.log(names);
     
    //返回对象的原型
     console.log(Object.getPrototypeOf(obj));
    
    //JavaScript对象既可以有自己的属性,又可以从原型对象继承属性。 hasOwnProperty()方法提供了区分继承属性和非继承的局部属性的方法。
    console.log(obj.hasOwnProperty('age'),obj.hasOwnProperty('Jack'),obj.hasOwnProperty('toString'));
    
    
    
    //将一个指定的对象的原型设置为另一个对象或者null(既对象的[[Prototype]]内部属性).
    //Object.setPrototypeOf(obj, prototype)
    console.log(Object.setPrototypeOf(obj,{name:'zitming'}));
    console.log(obj.name);              //还是zain,这个方法只是设置的原型对象,__proto__上的name为zitming
    
    
    //返回对象的原型,{name:'zitming'}
    console.log(Object.getPrototypeOf(obj));
    
    
    //表示这个对象是否可枚举(迭代)
    console.log(obj.propertyIsEnumerable('name'));
    
    
    //获取指定对象的自身属性描述符。自身属性描述符是指直接在对象上定义(而非从对象的原型继承)的描述符
    //Object.getOwnPropertyDescriptor(object, propertyname)
    console.log(Object.getOwnPropertyDescriptor(obj,'name'));
    
    
    //  function outer(){
    //      inner();
    //      console.log(outer.caller);
    //  }
    
    //  function inner(){
    //      console.log(inner.caller);
    //  }
    
    
    //  (function abc(){
    //      outer()
    //  })();
        </script>
    </body>
    </html>
    sometimes the hardest part isn't letting go,but rather start over
  • 相关阅读:
    Cocos2d-x 内存管理
    Cocos2d-x 解惑
    前端最实用、全面的工具类方法
    Java web 项目获取时间的方式列举
    Win系统常用指令
    Js三级下拉列表联动
    Js数组操作
    常用网站推荐
    最常用的正则表达式
    Oracle数据库学习
  • 原文地址:https://www.cnblogs.com/zhumeiming/p/9711104.html
Copyright © 2020-2023  润新知