javascript内置对象Object

Object

语法:

// 对象初始化器(Object initialiser)或对象字面量(literal)
// key-value 结构,key 字符串、value 任何值
{ [ nameValuePair1[, nameValuePair2[, ...nameValuePairN] ] ] }

// 以构造函数形式来调用
// value 任何值
new Object([value])

在JavaScript中,几乎所有的对象都是Object类型的实例,它们都会从Object.prototype继承属性和方法。Object 构造函数为给定值创建一个对象包装器。

  • 如果给定值是null 或 undefined,将会创建并返回一个空对象
  • 如果传进去的是一个基本类型的值,则会构造其包装类型的对象
  • 如果传进去的是引用类型的值,仍然会返回这个值,经他们复制的变量保有和源对象相同的引用地址
  • 当以非构造函数形式被调用时,Object 的行为等同于 new Object()

Object 构造函数的属性

属性
Object.length值为 1
Object.prototype可以为所有的 Object 对象添加属性

Object 构造函数的方法

方法作用
Object.assign()通过复制一个或多个对象来创建一个新的对象
Object.create()使用指定的原型对象和属性创建一个新的对象
Object.defineProperty()给对象添加一个属性并指定该属性的配置
Object.defineProperties()给对象添加多个属性并分别指定该属性的配置
Object.entries()返回给定对象自身可枚举属性的 [key, value] 数组
Object.freeze()冻结对象:其他代码不能删除或更改任何属性
Object.keys()返回一个包含所有给定对象自身可枚举属性名称的数组
Object.values()返回给定对象自身可枚举值的数组
Object.is()比较两个值是否相同。所有 NaN 值都相等(这与==和===不同

个人练习

Object 对象的简写、遍历、动态属性名

  • 遍历 : 使用 for…in
  • 动态属性名: key 用 [ 变量 ]
// 1.(简写)简洁表达式
// 在 ES6 之前
let name = 'mayuhan'
let age = 23
let obj ={
    name:name,
    age: age,
    say: function () {
        console.log(this.name+' 正在说话');
    }
}
console.log(obj);
obj.say()
// ES6 简洁表达
let name='mayunhan'
let age=23
let obj={
    name,
    age,
    say(){
        console.log(this.name+' 正在说话');
    }
}
obj.say()

// 2.动态属性名
let s = 'school'
let obj={
    foo: 'bar',
    [s]: 'imooc'
}
console.log(obj);   // { foo: 'bar', school: 'imooc' }

// Object.is()  用于判断两个对象 是否相等
// Object.assign()  将所有可枚举属性的至目标对象 同时会返回目标对象
// 3.对象的遍历
// for...in 不是用于遍历Array的,而是用于遍历对象的
let obj={
    name: 'mayunhan',
    age: 23
}
for (let key in obj) {
    console.log(key,obj[key]);
}
// Object.keys() 用于返回对象所有key组成的数组
let obj={
    name: 'mayunhan',
    age: 23
}
Object.keys(obj).forEach(key=>{
    console.log(key,obj[key]);
})
// Object.getOwnPropertyNames() 和 Object.ownKeys() 跟keys一样的用法

来自文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值