Javascript面向对象:Object.defineProperty()与Object.defineProperties()
对象属性的操作
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()相关推荐
- js之Object.defineProperty和Object.defineProperties详解
1. Object.defineProperty() Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象. 备注:应当直接在 ...
- 详解JavaScript之神奇的Object.defineProperty
摘要: JavaScript有个很神奇的Object.defineProperty(),了解一下? =与Object.defineProperty 为JavaScript对象新增或者修改属性,有两种不 ...
- 不会Object.defineProperty你就out了
http://imweb.io/topic/56d40adc0848801a4ba198ce Object.defineProperty ,顾名思义,为对象定义属性.在js中我们可以通过下面这几种 ...
- Object.defineProperty 以及 Proxy对比和基本语法 实干vue3数据响应
一.Object.defineProperty是什么? Object.defineProperty 是ES5Proxy 为开发者提供JavaScript已有却不能调用的功能,在ES5之前,js环境中的 ...
- Object.defineProperty方法的简单介绍
Object.defineProperty 对象定义属性和赋值 let Person = {} Person.name = 'cc' person['age'] = 18 Object.defineP ...
- 《JavaScript面向对象精要》读书笔记
JavaScript(ES5)的面向对象精要 标签: JavaScript 面向对象 读书笔记 2016年1月16日-17日两天看完了<JavaScript面向对象精要>(参加异步社区的活 ...
- JavaScript 面向对象编程(二) —— 构造函数 / 原型 / 继承 / ES5 新增方法
本篇为 JavaScript 进阶 ES6 系列笔记第二篇,将陆续更新后续内容.参考:JavaScript 进阶面向对象 ES6 :ECMAScript 6 入门 : Javascript 继承机制的 ...
- JS面向对象——Object.defineProperty
一.JavaScript的面向对象 JavaScript其实支持多种编程范式的,包括函数式编程和面向对象编程: JavaScript中的对象被设计成一组属性的无序集合,像是一个哈希表,有key和val ...
- JavaScript面向对象之Object类型
大家都知道对象都是属于Object类型的.下面是一些详细总结,希望可以帮助到有需要的小伙伴. JavaScript面向对象之Object类型 在JS中所有的对象都拥有同一个父级,就是Object. O ...
最新文章
- 使用FLANN进行特征点匹配
- c语言使用指针改数组逆置,用指针作函数参数,编写函数,将一个整型数组中的元素全部逆置。...
- 一种向后兼容的C++结构体设计
- Java编程——服务器设计方案之应用限流
- javascript基础--数组排序
- TensorFlow实战3——TensorFlow实现CNN
- 编码问题,java,当不知道自己的字符串编码是什么的时候,可以用如下程序进行尝试并自动转码utf-8,源码直接可用
- 设定所有tableView中cell的分隔线颜色
- Activity生命周期详解二
- fatal io error 11错误
- 智慧城管三维可视化决策系统平台(数字孪生)—解决方案开发案例
- Node.js连接数据库等操作
- Google Earth 嵌入Qt应用程序
- 为promise增加abort功能
- EduCoder-Hive表DDL操作(一、二)答案-路漫漫远俢兮
- Win11如何设置默认浏览器 win11设置默认浏览器的步骤方法
- 内网渗透小技巧(转载)
- linux poodle漏洞,Claws Mail 3.11.0发布 修复了POODLE 漏洞
- layui layer btn
- 蓝牙知识二【FEATURE SUPPORT】【LL_PING】【 LL_LENGTH】【Private Device Address Generatio】【profile例子EXAMPLE ATT】
热门文章
- Ubuntu16.04安装MongoDB4.4
- multiply函数实例
- 弘辽科技:淘宝商家如何轻松打造人气宝贝?
- 基于IMD驱动ARP防火墙设计(windows平台)
- 玩家经常反映玩游戏卡要怎么处理
- 快到春节了,用 Python 实现一场烟花秀
- 基于Java的图形化中国象棋游戏+PPT文档
- 如何刻服务器系统盘,如何配置远程刻录服务器
- 计算个人所得税.应交纳税费=应纳税所得金额*适用税率-速算扣除数.应纳税所得金额=个人收入-3500
- (iOS)苹果快手极速版抓包教程(二)