使用JavaScript,可能很难检查对象是否为空。使用Arrays,您可以使用myArray.length轻松检查,但另一方面,对象不能以这种方式工作,检查对象是否为空的最佳方法是使用如下所示的实用程序函数。
function isEmpty(obj) {
 for(var key in obj) {
 if(obj.hasOwnProperty(key))
 return false;
 }
 return true;
 }如果您有一个空对象,可以使用上面的函数检查它是否为空。
var myObj = {}; // Empty Object
if(isEmpty(myObj)) {
 // Object is empty (Would return true in this example)
 } else {
 // Object is NOT empty
 }或者,您可以在Object原型上编写isEmpty函数。
Object.prototype.isEmpty = function() {
 for(var key in this) {
 if(this.hasOwnProperty(key))
 return false;
 }
 return true;
 }然后,您可以轻松检查对象是否为空。
var myObj = {
 myKey: "Some Value"
 }
 if(myObj.isEmpty()) {
 // Object is empty
 } else {
 // Object is NOT empty (would return false in this example)
 }扩展对象原型并不是最好的事情,因为它可能导致一些浏览器问题和某些框架的其他问题(在某些环境中它也不总是可靠的)。我给出的例子几乎与框架无关。
这是一个很有用的实用函数,特别是如果你每天处理很多对象。
下载本文