JavaScript高级(十一)--对象方法Object

对象方法的补充

Object.create()

使用指定的原型对象和属性创建一个新对象。

返回值:一个新对象,带着指定的原型对象和属性。

javascript 复制代码
    var obj = {
      name: "why",
      age: 18
    }
    
    // 指定新对象的原型为obj
    var info = Object.create(obj, {
      address: {
        configurable: true,
        writable: true,
        enumerable: true,
        value: "beijing"
      }
    })

    console.log(info)
Object.assign()

通过复制一个或多个对象来创建一个新的对象。

javascript 复制代码
    const target = { a: 1, b: 2 };
    const source = { c: 4, d: 5 };

    // 原对象target也会发生变化
    // const res = Object.assign(target, source)

    // 解决方案1
    const res1 = Object.assign({}, target, source)
   
    // 解决方案2
    const res2 = {...target, ...source}
Object.defineProperty()

给对象添加一个属性并指定该属性的配置

javascript 复制代码
    const obj = {};

    Object.defineProperty(obj, "address", {
      value: "深圳",
      configurable: true,
      enumerable: true,
      writable: true
    })
Object.defineProperties()

给对象添加多个属性并分别指定它们的配置。

javascript 复制代码
    const obj = {};

    Object.defineProperties(obj, {
      address: {
        value: "深圳",
        configurable: true,
        enumerable: true,
        writable: true
      },
      name: {
        value: "malong",
        configurable: true,
        enumerable: true,
        writable: true
      }
    })
Object.freeze()

冻结对象:其他代码不能删除或更改任何属性。

javascript 复制代码
    var obj = {
        name: "malong"
    };
    
    Object.freeze(obj)
Object.prototype.hasOwnProperty()

返回一个布尔值,用于表示一个对象自身是否包含指定的属性,该方法并不会查找原型链上继承来的属性。

javascript 复制代码
    var obj = {
        name: "zhangsan"
    }
     
    for(var key in obj){
        if(obj.hasOwnProperty(key)){
            console.log(obj[key])
        }
    }
    
相关推荐
草莓熊Lotso1 分钟前
Qt 进阶核心:UI 开发 + 项目解析 + 内存管理实战(从 Hello World 到对象树)
运维·开发语言·c++·人工智能·qt·ui·智能手机
2501_941865636 分钟前
从事件驱动到异步架构的互联网工程语法构建与多语言实践分享
java·开发语言·jvm
前端 贾公子3 小时前
v-if 与 v-for 的优先级对比
开发语言·前端·javascript
嗯嗯=4 小时前
python学习篇
开发语言·python·学习
不会c嘎嘎7 小时前
QT中的常用控件 (二)
开发语言·qt
小二·7 小时前
Pinia 完全指南:用 TypeScript 构建可维护、可测试、可持久化的 Vue 3 状态管理
javascript·vue.js·typescript
是一个Bug7 小时前
50道核心JVM面试题
java·开发语言·面试
bug总结7 小时前
Vue3 实现后台管理系统跳转大屏自动登录功能
前端·javascript·vue.js
她和夏天一样热7 小时前
【观后感】Java线程池实现原理及其在美团业务中的实践
java·开发语言·jvm
lkbhua莱克瓦247 小时前
进阶-索引3-性能分析
开发语言·数据库·笔记·mysql·索引·性能分析