JavaScript的Object中28个原型方法、静态方法和属性

Object.prototype原型方法、属性

序号方法名参数返回值
1constructor属性-----------------------返回实例构造函数
2hasOwnProperty
3isPrototypeOf(obj)对象调用此方法的对象是否存在与参数obj的原型链上。是返回布尔值true
4propertyIsEnumerable(propName)实例的属性名属性是否可枚举,是返回布尔值true
5toLocalString(obj)对象对象的字符串表示
6toString(obj)对象对象的字符串表示
7valueOf(obj)对象将对象转换为原始值

Object静态方法

序号静态方法名参数返回值
1assign(targetObj,sourceObj,s2,s3...)目标对象,源对象将源对象合并到目标对象,返回修改后的目标对象,浅拷贝
2create(sourceObj)对象以源对象为原型创建一个对象并返回
3defineProperties(obj,props)要修改的对象,修改后的属性为一个对象声明多个属性,返回修改后的原对象
4defineProperty(obj,propName,propVal)要修改的对象,修改后的属性为一个对象声明一个属性,返回修改后的原对象
5entries(obj)要遍历的对象给定对象自身可枚举属性的键值对数组
6freeze(obj)要冻结的对象返回浅冻结的原对象
7fromEntries(arr[arr1,arr2...])键值对二维数组从二维数组转化而来的对象
8getOwnPropertyDescriptor(obj,propName)对象,对象的属性名返回对象的自有属性描述对象
9getOwnPropertyDescriptors(obj)对象返回对象的所有自有属性描述对象组成的对象
10getOwnPropertyNames(obj)对象对象自有属性名组成的数组
11getOwnPropertySymbols(obj)对象对象自有Symbol类型的属性组成的数组
12getPrototypeOf(obj)对象对象的原型
13is(val,val2)是同一个值返回布尔值true,不是返回false,无强制类型转换
14isExtensible(obj)对象是否可扩展(可以添加属性),是返回布尔值true
15isFrozen(obj)对象是否被冻结,被冻结返回布尔值true
16isSealed(obj)对象是否是密封的,密封(不可扩展、不可删除、不可配置,不一定不可写),是密封返回布尔值true
17keys(obj)对象由obj可枚举属性组成的数组
18preventExtensions(obj)对象让对象变得不可扩展,不能添加属性,返回阻止扩展后的对象
19seal(obj)对象密封一个对象,返回密封后的对象
20setPrototypeOf(obj,obj2)对象将obj2设置为obj的原型
21values(obj)对象由对象可枚举属性组成的数组

 代码示例:

        let p = (...args) => {
            console.log(...args);
        }
        
        p(Object.prototype);
        p('------------------------');
        let hero = {
            name:"Asia",
            id:23,
            say(){
                p(`I am ${this.name}`);
            }
        }
        let o = {
            id:24,
            sex:'man',
            ob:{
                a:{
                    b:"a"
                }
            }
        }
        
        // p(hero.constructor());
        
        // p(Object.assign(hero,o));
        // hero.ob.a.b = "00000";
        // p(hero);
        // p(o);
        
        // let tom = Object.create(hero);
        // p(tom);
        // tom.name = "tomA";
        // tom.say();
        
        // let result = Object.defineProperties(hero,{
        //     'newProperty1':{
        //         value:'val1',
        //         writable:true
        //     },
        //     'newProperty2':{
        //         value:"val2",
        //         writable:true,
        //     }
        // });
        // p(result);
        
        // let result = Object.defineProperty(hero,'newProperty',{
        //     value:'val',
        //     writable:true
        // });
        // p(result);
        
        // for(const [key,val] of Object.entries(hero)){
        //     p(key,val);
        // }
        
        // Object.freeze(hero);//浅冻结
        // hero.id = 9999;
        // p(hero.id);//
        
        // o = Object.fromEntries([
        //     ['a','aa'],
        //     ["b",'bb'],
        // ]);
        // p(o);
        
        // let result = Object.getOwnPropertyDescriptor(hero,'name');
        // p(result);
        
        // let result = Object.getOwnPropertyDescriptors(hero);
        // p(result);
        
        // let arr = Object.getOwnPropertyNames(hero);
        // p(arr);
        
        // let s1 = Symbol("a");
        // let s2 = Symbol('b');
        // hero[s1] = 'symbol1';
        // hero[s2] = 'symbol2';
        // let arr = Object.getOwnPropertySymbols(hero);
        // p(arr);
        
        // let result = Object.getPrototypeOf(hero);
        // p(result);
        
        // p(Object.is(1,1));
        // p(Object.is(1,"1"));
        
        // p(Object.isExtensible(hero));
        
        // p(Object.isFrozen(hero));
        
        // p(Object.prototype.isPrototypeOf(hero));
        
        // p(Object.isSealed(hero));
        
        // p(Object.keys(hero));
        
        // Object.preventExtensions(hero);//使hero不可扩展
        // hero.aaa = "1";
        // p(hero);
        
        // p(hero.propertyIsEnumerable('name'));
        
        // p(Object.seal(hero));
        
        // Object.setPrototypeOf(hero,null);
        // p(hero.prototype);
        
        // p(hero.toLocaleString());
        
        // p(hero.toString());
        
        // p(hero.valueOf());
        
        p(Object.values(hero));

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值