Obiect的方法使用

Object

object.assign()

拷贝源对象自身可枚举属性,利用该属性可以合并两个对象

let obj1 = { a: 0 , b: { c: 0}};
let obj2 = Object.assign({}, obj1);
obj2.b.c = 3;
log(JSON.stringify(obj1));   // { a: 0, b: { c: 3}}
log(JSON.stringify(obj2));   // { a: 0, b: { c: 3}}

object.Defineproperty()

  • 使用此方法可以为对象添加属性或修改属性的值:三个参数含义分别为对象名称、属性名称、值和是否可修改属性值 (得出obj={ name: 42 }),所添加的对象
  • 还具有gertter和setter,默认为undefine,访问该属性时会调用该函数
    (要么有value和writable要么有gertter和setter)
  • Enumerable属性定义了对象的属性是否可以在for…in循环和object.keys()中被枚举
Object.defineProperty(obj, 'name', {  
  value: 42,  // 属性对应的值,默认为undefine
  writable: false  // 是否可以被赋值运算符修改
  enumerable: false  // 是否具有可枚举属性
  configurable:false  // 能够改变属性名称,删除该属性
});

object.entries()

使用此方法返回一个键值对数组,其顺序和for…in 循环遍历时的一样
(for…of…遍历的是value,for…in…遍历的是key)
若是可排序的key会转换顺序

const anObj = { 100: 'a', 2: 'b', 7: 'c' }
console.log(Object.entries(anObj))   // [ ['2', 'b'], ['7', 'c'], ['100', 'a'] ]

object.prototype.constructor()

所有对象都会从他的原型上继承constructor属性

var a = []
a.constructor === Array   // true

object.keys()

  • 返回对象可枚举属性组成的数组:obj[key] = value(返回由key组成的数组)
  • 若是key是可排序的,返回的key是排序好了的
  • 若要获取一个对象的所有属性,包括不可枚举的,使用object.getOwnPropertyName()
var anObj = { 100: 'a', 2: 'b', 7: 'c' }
console.log(Object.keys(anObj))   // console: ['2', '7', '100']
// 数组返回的key是0,1,2,3,
var arr = ['a', 'b', 'c']
console.log(Object.keys(arr)) // console: ['0', '1', '2']

object.values()

返回可枚举的对象(同object.keys())
具有可排序的key时,value的值会被打乱

var an_obj = { 100: 'a', 2: 'b', 7: 'c' }
console.log(Object.values(an_obj))   // ['b', 'c', 'a']

object.hasOwnProperty()

返回一个布尔值,判断该对象是否含有指定的属性(会忽略从原型链继承来的属性)

object1.property1 = 42;
console.log(object1.hasOwnProperty('property1'))  // expected output: true

object.is()

判断两个值是否为同一个值,返回布尔值,与三等不同的有:
+0,-0,三等返回true,object.is()返回false,
NaN和NaN比较时,三等返回false,object.is()返回true

var foo = { a: 1 };
var bar = { a: 1 };
Object.is(foo, foo);     // true
Object.is(foo, bar);     // false
Object.is([], []);        // false
Object.is(NaN, 0/0);    // true

参考文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值