对象属性的操作

let obj = {name: "ziu",age: 18
}console.log(obj.name) // 获取属性
obj.name = "ziuc" // 给属性赋值
obj.height = 1.88 // 增加属性
delete obj.name // 删除属性// 遍历对象中所有的key
for(let key in obj) {console.log(key)
}

defineProperty

直接定义在对象内部的属性,没有办法对其进行更详细的设置如:属性是否允许被赋值、属性是否可以被delete删除、在for-in遍历时是否可以被遍历。

这时可以用属性描述符,精准的添加或修改对象的属性。

属性描述符用Object.defineProperty()对属性进行添加或修改。

Object.defineProperty(obj, prop, descriptor)

  • obj:要定义属性的对象
  • prop:要定义或者修改的属性名称或Symbol
  • descriptor:要定义或修改的属性描述符
Object.defineProperty(obj, "name", {}) // edit Existing properties
Object.defineProperty(obj, "height", {}) // create new property and edit

与defineProperties的区别

出现报错:Property description must be an object.

注意区分Object.defineProperty(obj, prop, descriptor)Object.defineProperties(obj, props)

Object.defineProperty(obj, "name", {value: "ziu"}) // Object.defineProperty
Object.defineProperties(obj, { // Object.defineProperties"name": {value: "ziu",writable: false},"address": {value: "Beijing",writable: true}
})

Javascript面向对象:Object.defineProperty()与Object.defineProperties()相关推荐

  1. js之Object.defineProperty和Object.defineProperties详解

    1. Object.defineProperty() Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象. 备注:应当直接在 ...

  2. 详解JavaScript之神奇的Object.defineProperty

    摘要: JavaScript有个很神奇的Object.defineProperty(),了解一下? =与Object.defineProperty 为JavaScript对象新增或者修改属性,有两种不 ...

  3. 不会Object.defineProperty你就out了

    http://imweb.io/topic/56d40adc0848801a4ba198ce   Object.defineProperty ,顾名思义,为对象定义属性.在js中我们可以通过下面这几种 ...

  4. Object.defineProperty 以及 Proxy对比和基本语法 实干vue3数据响应

    一.Object.defineProperty是什么? Object.defineProperty 是ES5Proxy 为开发者提供JavaScript已有却不能调用的功能,在ES5之前,js环境中的 ...

  5. Object.defineProperty方法的简单介绍

    Object.defineProperty 对象定义属性和赋值 let Person = {} Person.name = 'cc' person['age'] = 18 Object.defineP ...

  6. 《JavaScript面向对象精要》读书笔记

    JavaScript(ES5)的面向对象精要 标签: JavaScript 面向对象 读书笔记 2016年1月16日-17日两天看完了<JavaScript面向对象精要>(参加异步社区的活 ...

  7. JavaScript 面向对象编程(二) —— 构造函数 / 原型 / 继承 / ES5 新增方法

    本篇为 JavaScript 进阶 ES6 系列笔记第二篇,将陆续更新后续内容.参考:JavaScript 进阶面向对象 ES6 :ECMAScript 6 入门 : Javascript 继承机制的 ...

  8. JS面向对象——Object.defineProperty

    一.JavaScript的面向对象 JavaScript其实支持多种编程范式的,包括函数式编程和面向对象编程: JavaScript中的对象被设计成一组属性的无序集合,像是一个哈希表,有key和val ...

  9. JavaScript面向对象之Object类型

    大家都知道对象都是属于Object类型的.下面是一些详细总结,希望可以帮助到有需要的小伙伴. JavaScript面向对象之Object类型 在JS中所有的对象都拥有同一个父级,就是Object. O ...

最新文章

  1. 使用FLANN进行特征点匹配
  2. c语言使用指针改数组逆置,用指针作函数参数,编写函数,将一个整型数组中的元素全部逆置。...
  3. 一种向后兼容的C++结构体设计
  4. Java编程——服务器设计方案之应用限流
  5. javascript基础--数组排序
  6. TensorFlow实战3——TensorFlow实现CNN
  7. 编码问题,java,当不知道自己的字符串编码是什么的时候,可以用如下程序进行尝试并自动转码utf-8,源码直接可用
  8. 设定所有tableView中cell的分隔线颜色
  9. Activity生命周期详解二
  10. fatal io error 11错误
  11. 智慧城管三维可视化决策系统平台(数字孪生)—解决方案开发案例
  12. Node.js连接数据库等操作
  13. Google Earth 嵌入Qt应用程序
  14. 为promise增加abort功能
  15. EduCoder-Hive表DDL操作(一、二)答案-路漫漫远俢兮
  16. Win11如何设置默认浏览器 win11设置默认浏览器的步骤方法
  17. 内网渗透小技巧(转载)
  18. linux poodle漏洞,Claws Mail 3.11.0发布 修复了POODLE 漏洞
  19. layui layer btn
  20. 蓝牙知识二【FEATURE SUPPORT】【LL_PING】【 LL_LENGTH】【Private Device Address Generatio】【profile例子EXAMPLE ATT】

热门文章

  1. Ubuntu16.04安装MongoDB4.4
  2. multiply函数实例
  3. 弘辽科技:淘宝商家如何轻松打造人气宝贝?
  4. 基于IMD驱动ARP防火墙设计(windows平台)
  5. 玩家经常反映玩游戏卡要怎么处理
  6. 快到春节了,用 Python 实现一场烟花秀
  7. 基于Java的图形化中国象棋游戏+PPT文档
  8. 如何刻服务器系统盘,如何配置远程刻录服务器
  9. 计算个人所得税.应交纳税费=应纳税所得金额*适用税率-速算扣除数.应纳税所得金额=个人收入-3500
  10. (iOS)苹果快手极速版抓包教程(二)