判断对象中是否有该属性
in运算符的左侧是属性名(字符串或是一个能够返回字符串的表达式),右侧是对象。
如果对象的自有属性或继承属性中包含属性名返回true / flase
“assign” in Object 继承原型对象属性
let porty = {x:0}
"x" in porty
porty中当有x属性的时候返回 true 没有返回 flase
对象.hasOwnPreperty(“属性名称”)
对象的hasOwnProperty()方法用来检测给定的名字是否是对象的自有属性。
对于不存在的属性和继承属性它将返回false
是否枚举
可枚举性决定了这个属性能否被for…in查找遍历到。 一个个枚举出来
Object.getOwnPropertyDescriptor( 对象, “属性名称”) 获取对象属性的特性
属性特性
// enumerable: true 对象属性是否可通过for-in循环,flase为不可循环、
// configurable: true 能否使用delete能否需改属性特性、或能否修改访问器属性、,false为不可重新定义
// value: “你好” 对象属性的默认值,默认值为undefined
// writable: true 是否能修改值
修改对象属性的特性
Object.defineProperty( 待修改对象 , “属性名称”, 描述符对象 )
Object.defineProperty(a,“c”,{ enumerable: false})
JS 对象的访问器属性
setter getter函数
Object.defineProperty(a,“c”,{getter:function( ){ }, getter:function( ){ }}