Object函数的内置方法

156 阅读1分钟

基于14种内建方法形成的API

3.获取对象的可扩展性[[IsExtensible]]

var extensible = Object.isExtensible(obj)

console.log(extensible)

Object.freeze(obj) //true

var extensible2 = Object.isExtensible(obj)

console.log(extensible2) //false

//封闭对象

Object.seal(obj)

obj.c = 3 //不可修改

delete obj.a //不可删除

obj.b = 3 // 可写

for(var key in obj) {

console.log(obj[key]) //可读

}

//冻结对象

Object.freeze(obj)

obj.c = 3 //不可修改

delete obj.a //不可删除

obj.b = 3 // 不可写

for(var key in obj) {

console.log(obj[key]) //可读

}

5.Object.preventExtensions(obj) [[PreventExtensions]]禁止扩展对象

禁止增加属性,可以删除属性

  • obj.c = 3 (x)
  • delete obj.a (√)

6.Object.defineProperty() [[DefineProperty]]拦截对象操作

7.Object.hasOwnProperty('key') 判断是否是自身属性

8.[[GET]] 获取值

console.log('a' in obj) 即底层用get方法实现

9.[[SET]] 赋值

obj.a = 3 obj['a'] = 4

10.[[DELETE]] 删除

delete obj.a

11.[[Enumerate]] 枚举

for (var k in obj) { console.log(obj[k]) }

12. 获取键集合 [[OwnPropertyKeys]] 自有key

console.log(Object.keys(obj))