eg:var obj = {}
var b = function () {
for (var key in obj) {
return false
}
return true
}
console.log(b()) // true
2、对象序列化(将对象转换为字符串)后进行判断
eg:var data = {}
var b = (JSON.stringify(data) == "{}")
console.log(b) // true
3、jquery的isEmptyObject()方法
eg: var data = {}
var b = $.isEmptyObject(data)
console.log(b) // true
4、Object.getOwnPropertyNames()方法
eg: var data = {}
var arr = Object.getOwnPropertyNames(data)
console.log(arr.length == 0) // true
5、ES6中的Object.keys()方法
eg: var data = {}
var arr = Object.keys(data)
console.log(arr.length == 0) // true
//js中创建对象有两种方法:
//1、对象字面量法
var o1={name:"aaa",age:17}
//2、构造函数法
var o2=new Object()
o2.name="bbb"
o2.age=20
Object.entries(obj)
将一个可枚举对象按照键值对展开为数组
Object.assign(target, source)
将一个或多个可枚举对象的可枚举属性复制到 target 对象,返回 target 对象。第一级属性深拷贝,以后级别属性浅拷贝
Object.freeze(obj)
相应的也有判断是否冻结的方法----Object.isFrozen()
冻结一个对象。一个被冻结的对象再也不能被修改,包括所有的属性,甚至包括他的原型。返回与原对象相同参数的对象
Object.create(obj)
创建一个新对象,将现有的对象创建为新对象的 proto 。返回一个新对象
Object.keys(obj)
遍历一个对象,将 key 返回为数组
Object.defineProperty(obj, prop, descriptor)
参数:
obj:被操作对象
prop:修改或要定义的属性名
descriptor:修改或要定义的属性的属性描述,即prop的描述
新增或修改一个对象的属性,并返回该对象
扩展:在vue中通过递归调用此方法,为对象的每一个属性绑定get()、set()方法,实现对象的数据监听
Object.getPrototypeOf(obj)
返回目标对象的 prototype 的值。
给定对象的原型。如果没有继承属性,则返回 [null]