位置: 编程技术 - 正文

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)

  • 小规模纳税人销售农产品税率是多少
  • 待处理财产损益借贷方向
  • 食堂费用没有发票可以税前扣除吗
  • 幼儿园收费怎么说
  • 代收水电费的账务处理
  • 支付宝收据在哪儿看
  • 增值税降到16个点什么时候实行
  • 公司哪些支出不影响报表净利润总额
  • 固定资产的维护费计入什么科目
  • 企业所得税季度申报时间
  • 企业外购固定资产的成本包括购买价款和相关税费
  • 公司发的奖金可以直接公司账户转账给员工吗?
  • 一般销售商品业务
  • 案例分析工程发票进项高于销项怎么抵扣?
  • 一般纳税人和小微企业的区别
  • 小微企业资质证书
  • sd标准差是什么意思
  • 未开票收入可以填写负数吗
  • 广告代理服务计入什么费用
  • 利润表所得税费用怎么填
  • 企业微信收款怎么提现
  • 应收出口退税属于哪个会计科目
  • 关于设备延期交付说明
  • 公司发的物品叫什么
  • 认证成功次月何时补发
  • 公允价值变动借方是增还是减
  • linux 操作系统查看
  • won11检测
  • 使用最新版本的浏览器可以防御黑客
  • sdi是什么文件
  • 被收购企业会提出什么条件
  • Win10组策略怎么进
  • php变量底层实现
  • 来料加工怎么核算成本
  • vue3 global
  • 伦索伊斯马拉赫塞斯国家公园
  • 谷歌浏览器如何设置主页为默认页
  • 中小企业发展专项资金绩效评价报告
  • uniapp动态设置标题
  • vue @hook
  • win11磁盘分区后不显示
  • wget下载yum
  • 增值税发票查验结果不一致是什么意思
  • 个体户做账流程新手必看
  • 代开发票是否代征城建税和教育费附加?
  • 软件开发企业如何计算利润
  • 北京社保月平均工资
  • 0申报残保金逾期影响企业信用评级吗为什么
  • 电子承兑汇票支付信用查询
  • 支付宝提现到对公账户要收手续费吗
  • 哪些费用可以进研发费用
  • 办公桌椅入什么会计科目
  • 加工费的预付款是什么
  • 高新企业如何做账
  • 经费开支要求
  • 上个月开的发票这个月作废如何做帐?
  • 企业转让固定资产企业所得税
  • 公司往来借款怎么做账
  • 商业会计和工业会计哪个好
  • 其他应收款怎么冲平
  • mysql的索引实现原理
  • vpngui.exe是什么进程
  • win7笔记本任务管理器
  • win7网页显示不全
  • Linux编译内核无法启动
  • win10 rs3
  • vue如何处理跨域
  • python 检测主机存活
  • python程序讲解
  • jqueryattrprop区别
  • js中check
  • js 返回上一页面并刷新
  • bootstrap要学到什么程度
  • 新疆干部在线网络平台登录
  • 哪些保险有免赔额
  • 企业所得税年报职工薪酬纳税调整明细表
  • 运输发票抵税多少个点
  • 北京税务查验中心官网
  • 国家税务总局56号
  • 为什么10月份社保交不了
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设