位置: 编程技术 - 正文

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)

  • 劳务公司一般纳税人可以抵扣进项税吗
  • 什么是应税服务中止
  • 资金账户托管协议
  • 人力资源公司开办条件
  • 专票小数点没打印齐能用吗
  • 个人所得税申报退税多久到账
  • 计税金额是含税还是不含税
  • 申报入库税款怎么分税种发给税管员
  • 房产交房前开发商要办齐的手续
  • 外贸企业一般纳税人申报
  • 出差回来报销差旅费,补付现金的会计分录
  • 转让土地及地上建筑物
  • 境外劳务输出有哪些类型
  • 超过认证期限的发票怎么处理
  • 超30日未备案
  • 买鼠标去哪买
  • 三证合一后换章子要多久
  • 专用发票发票联丢失怎么办
  • 公园门票可以开发票吗
  • 股票现金分红
  • 契税纳税义务发生时间税屋
  • 开票的时候开票人是管理员
  • 小规模企业核定征收
  • 小企业会计准则成本核算方法选什么
  • 工资扣税标准计算方法
  • 多结转成本会导致什么
  • 销售设备并提供安装服务增值税税率
  • 银行承兑汇票和银行汇票的区别
  • 废料销售成本怎么计算
  • windows update更新错误
  • php的注释可以使用什么开头
  • PHP:Memcached::setOption()的用法_Memcached类
  • 深入理解php内核
  • 最贵的苹果4
  • PHP:json_last_error()的用法_JSON函数
  • 固定资产一次性扣除后第二年账务处理
  • 炫酷登录注册教程
  • websocket怎么用
  • 发票中食品属于哪一类
  • 银行贷款入账需要什么
  • 增值税发票丢失怎么补开
  • 小企业会计准则外币业务
  • phpcms v9 getshell
  • mysql读写分离amoeba
  • 员工加班打车费报销
  • 会计和外贸哪个工作强度大
  • 暂估入库的库存商品转成本吗
  • 半成品是指正在各生产阶段加工的产品
  • 企业应收账款的规模受哪些因素的影响?( )
  • 预付款充值发票
  • 其他综合收益不影响当期损益
  • 收到保险公司的赔款计入什么科目
  • 小规模企业所得税优惠政策最新2023
  • Win2008 R2 mysql 5.5 zip格式mysql 安装与配置
  • windows预览版
  • windows11技术预览版
  • win8升级win10系统 激活
  • 微软推送windows 11
  • centos7权限
  • nfs安装配置
  • ghost后恢复数据
  • Win7升级win10后可以删除2345吗
  • linux挂载的概念
  • win8系统保护已关闭 如何系统还原
  • Quick cocos2dx-Lua(V3.3R1)学习笔记(十三)-----继续触摸事件之多点触摸
  • linux常用脚本代码
  • 自定义标签的开发的3个步骤?
  • jQuery+ajax实现文章点赞功能的方法
  • 基于vue的app
  • linux .tar文件
  • python的应用程序
  • jquery轮播图代码
  • android 底部选择菜单
  • spring mvc jsp
  • 装饰装修公司需要什么
  • 浙江税务打不开,提示新版本
  • 广东省电子税务局app下载官网
  • 发票开票系统可以查询上一年发票吗?
  • 绵阳税务局咨询电话
  • 怎么删除天眼查的犯罪记录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设