属性的删除、检测和枚举


删除属性

delete 运算符可用于删除对象属性,需要注意的是,delete 只是断开属性和宿主对象的联系,而不会去操作属性中的属性。

delete 运算符只能删除自有属性,不能删除继承属性。

delete 运算符删除成功或没有任何副作用(比如删除不存在的属性)时返回true

delete 不能删除可配置性为 false 的属性(比如通过变量声明和函数声明创建的全局对象的属性):

检测属性

判断属性属性是否存在与对象中:

  • in:可用于检测自有属性和继承属性
  • hasOwnProperty():用于检测自有属性
  • propertyIsEnumerable():只有检测到是自有属性且属性是可枚举时才返回true

枚举属性

注意,我们需要通过关联数组的方式获取对象属性值。

ECMAScript 5 定义了两个用以枚举属性名称的函数,第一个是 Object.keys() 函数,它返回对象中所有可枚举的自有属性的名称数组,第二个是 Object.getOwnPropertyNames() 函数,它返回对象中所有自有属性的名称,而不仅仅是可枚举的属性。


点赞 取消点赞 收藏 取消收藏

<< 上一篇: 属性的查询和设置

>> 下一篇: 属性 getter 和 setter