位置: 编程技术 - 正文

JavaScript对象的property属性详解(javascript对象的属性和方法)

编辑:rootadmin

JavaScript中对象的property有三个属性:1.writable。该property是否可写。2.enumerable。当使用for/in语句时,该property是否会被枚举。3.configurable。该property的属性是否可以修改,property是否可以删除。

在ECMAScript 3标准中,上面三个属性的值均为true且不可改:新建对象的property是可写的、可被枚举的、可删除的;而在ECMAScript 5标准中,可通过property的描述对象(property descriptor)来对这些属性进行配置和修改。

如果将property的值信息也作为property的属性来看的话,对象中的property拥有四个属性:value、writable、enumerable和configurable。

对于用getter和setter方法来定义的property,由于其没有writable属性(property是否可写取决于setter方法是否存在),因此这种property也有四个属性:get、set、enumerable和configurable — get和set属性的值为function。

获取对象property的属性

ECMAScript 5标准中,可以通过Object.getOwnPropertyDescriptor()来获取对象自身某个property的属性信息:可以看到,如果property不存在或者property继承自原型对象,则返回undefined。

设置对象property的属性

ECMAScript 5标准中,可以通过Object.defineProperty()来设置对象自身某个property的属性:如果设置的property是从原型对象中继承而来的,那么JavaScript将在对象自身中创建一个同名的property,这与赋值操作的相关行为一致:除了修改property的属性,还可以将property改为用getter或setter访问:在使用Object.defineProperty()时,property描述对象中的属性值可以部分忽略,当属性值有所忽略时,JavaScript中的处理规则如下:

如果property是新建的,则所有忽略的属性值均为false或undefined。如果property已存在,则所有忽略的属性值维持原样不变。

批量设置对象property的属性

如果需要一次性设置多个property的属性,可以使用Object.defineProperties()语句。该语句将返回修改后的对象。property属性设置规则

当对property属性进行修改时,必须遵循以下规则。如果违反规则,JavaScript将报TypeError错误:

如果对象不是extensible的,则只能修改已有property的属性,无法添加新的property。如果property的configurable属性为false,则无法修改configurable和enumerable属性的值,对于writable属性,可以将其从true改为false,但无法将其从false改为true。如果property由getter和setter定义,则getter和setter方法无法被修改。如果property的configurable属性和writable属性均为false,则property值不可改。如果property的writable属性为false,但其configurable属性为true,则property值依然可以修改。

推荐整理分享JavaScript对象的property属性详解(javascript对象的属性和方法),希望有所帮助,仅作参考,欢迎阅读内容。

JavaScript对象的property属性详解(javascript对象的属性和方法)

文章相关热门搜索词:JavaScript对象的属性和方法不用区分大小写,javascript对象的属性和方法,JavaScript对象的属性和方法不用区分大小写,JavaScript对象的创建,javascript对象的种类,javascript对象的属性和方法,javascript对象的属性和方法,JavaScript对象的创建,内容如对您有帮助,希望把文章链接给更多的朋友!

深入理解javascript的执行顺序 如果你不能理解javaScript语言的运行机制,或者简单地说,你不能掌握javascript的执行顺序,那你就犹如伯乐驾驭不了千里马,让千里马脱缰而出,四处乱

JavaScript中的prototype.bind()方法介绍 以前,你可能会直接设置self=this或者that=this等等,这样做当然也能起作用,但是使用Function.prototype.bind()会更好,看上去也更专业。下面举个简单的例子

JavaScript排序算法之希尔排序的2个实例 插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率。但插入排序一般来说是低效的,因为插入排序每次只能将数据移动

标签: javascript对象的属性和方法

本文链接地址:https://www.jiuchutong.com/biancheng/373761.html 转载请保留说明!

上一篇:js原型继承的两种方法对比介绍(js原型继承和构造继承)

下一篇:深入理解javascript的执行顺序(深入理解ffmpeg pdf)

  • 税收管辖权是什么的重要组成部分
  • 工商年报多久能显示
  • 从厂家拿货怎么谈价格
  • 一次性加速折旧汇算清缴怎么填报
  • 农产品普票进项税抵扣怎么做账
  • 装修收入如何填报增值税表
  • 所有小规模都能抵税吗
  • 进项税额结转不结转
  • 单位承担的社保费用计入应付职工薪酬科目吗
  • 技术服务公司可以卖材料吗
  • 合同签订之后国家降税怎么办?
  • 从银行提取现金用途
  • 发生费用是什么意思
  • 企业会计一般做什么
  • 租赁合同交税一般交多少钱
  • 资产重组账务处理 会计视野
  • 企业授予员工股份的条件
  • 企业股权融资方式有
  • 电商刷单的成本如何处理?
  • 调价单生成什么科目
  • 话费发票入账
  • 代扣代缴的增值税怎么做账
  • 医院开发票需要税号吗
  • 甲供材项目施工方怎样开票
  • 不征收增值税项目进项税额可以抵扣吗
  • 公司所得税汇算清缴退税流程
  • 自建自用建筑物,其自建行为不是建筑业税目的征税范围
  • 利息收入需要开票吗
  • 生产企业销售给其他单位的生产工具
  • 账户禁用无法登录怎么办
  • 修改远程桌面端
  • 电子发票上的电子税章如何才能自动生成
  • win7系统鼠标键盘
  • taskhost window
  • PHP:Memcached::getMulti()的用法_Memcached类
  • 电脑关机了wifi还能检测到在线
  • mac怎么保存
  • 原始凭证丢了怎么查帐
  • 房地产开发公司组织架构
  • code ide
  • 如何做世界上最小的遥控飞机
  • 会计核算的职能主要是从什么方面综合反映
  • 网上蛋糕商城jsp页面
  • 【Pytorch深度学习50篇】·······第六篇:【常见损失函数篇】-----BCELoss及其变种
  • man-s命令
  • 企业所得税申报更正怎么操作
  • 小规模纳税人免征增值税的账务处理
  • 企业的利润率怎么算
  • 季初资产总额和季末资产总额怎么算
  • 公司被吊销营业执照的法律后果是什么?
  • 家庭保洁服务包括什么
  • sql2008附加数据库错误3456
  • MYSQL数据库使用教程
  • 如果租房没有合同怎么办
  • 支付员工经济补偿金会计处理方式
  • 发放股票股利如何影响计算基本每股收益
  • 小规模纳税人购车是怎么抵税的
  • 代扣税款手续费是什么意思
  • 刷信用卡的手续费一般是多少
  • 参展企业收到展览费用
  • 存货出售,资产减值损失如何处理
  • 小企业如何建立党支部
  • 企业在销售过程中支付的消费税应通过什么账户进行核算
  • 长期待摊费用如何做账
  • xp系统英文版怎么改成中文
  • ubuntu开启图形化界面
  • 优麒麟 apk
  • linux 常用 命令
  • linux apt apt-get
  • win10自带邮箱无法使用126
  • win10一周年深色主题
  • win8谷歌浏览器出现无法访问此网站
  • mongo 安装
  • cocos2dx游戏开发
  • linux如何查看当前shell
  • shell脚本用法
  • 安卓手机怎么设置自动化
  • js中splice方法
  • jquery easyui 教程
  • 增值税运输费用税额计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设