javascript中如何判断一个新创建对象是无属性的空对象?

原创 2015年11月18日 10:36:10

我们知道,在js中创建一个新对象时会引用所继承对象的原型,这个原型要么是你之前定义好的已有对象,要么是js的内置对象或在浏览器重的其他宿主对象。新对象创建完成后,新对象中会包含所继承的对象的属性。但是如果新对象没有添加自己的自有属性的话,那么我们可以人为这个对象是一个空对象。


var o = new Object();  //或者 var o = {};

上面语句创建了一个新对象o,这时对象o中除了从Object对象中继承的属性和方法外没有任何自有属性或方法。那么我们就可以通过判断o中是否存在自有属性或方法来判断该对象是否是“空对象“。

//方法如下
function isNullObject(obj){
    for(var p in obj){
        if(obj.hasOwnProperty(p)){
            return false;  //有自有属性或方法,返回false
        }
    }
    return true;  //没有自有属性或方法,返回true,该对象是空对象
}
利用上面的方法,我们就可以判断出一个对象到底是否是空对象了,小伙伴们可以去测试一下了。。。

版权声明:本文为博主原创文章,如需转载请注明出处,谢谢。

new 一个空的数组对象和a[0]=null的区别

最近在做项目中碰到需要返回一个空的模板,但是模板需要dateSet或者对象数组来创建, 对象数组创建时,会先查去summary页面去查询出来结果然后,再在模板类中调用对象数组, ---------...

js如何判断一个对象{}是否为空对象,没有任何属性

js如何判断一个对象{}是否为空对象,没有任何属性前段时间用js写了一个类似"angularjs"用于数据绑定的东西,功能是比较简单了,通常应该传进来的是一个ArrayList JSON对象数组,但有...

JavaScript新创建对象的一些属性和方法

JavaScript创建对象 自带的一些属性和方法,认识他们,你会更深刻的认识js

新创建对象的ob_refcnt为啥就等于2?

python的内存回收机制使用了引用计数的机制,每个python

Dalvik虚拟机为新创建对象分配内存的过程分析

在前面一文中,我们分析了Dalvik虚拟机创建Java堆的过程。有了Java堆之后,Dalvik虚拟机就可以在上面为对象分配内存了。在Java堆为对象分配内存需要解决内存碎片和内存不足两个问题。要解决...

ART运行时Compacting GC为新创建对象分配内存的过程分析

在引进Compacting GC后,ART运行时优化了堆内存分配过程。最显著特点是为每个ART运行时线程增加局部分配缓冲区(Thead Local Allocation Buffer)和在OOM前进行...

Dalvik虚拟机为新创建对象分配内存的过程分析

在前面一文中,我们分析了Dalvik虚拟机创建Java堆的过程。有了Java堆之后,Dalvik虚拟机就可以在上面为对象分配内存了。在Java堆为对象分配内存需要解决内存碎片和内存不足两个问题。要解决...

ART运行时Compacting GC为新创建对象分配内存的过程分析

在引进Compacting GC后,ART运行时优化了堆内存分配过程。最显著特点是为每个ART运行时线程增加局部分配缓冲区(Thead Local Allocation Buffer)和在OOM前进行...

JavaScript创建对象 —— 原型模式

我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,这个对象我们叫它原型对象。而这个原型对象的用途是包含可以由特定类型的所有实例共享的属性和方法。它所包含的属性...

如何使用JavaScript创建对象

如何使用JavaScript创建对象标签(空格分隔): 理解对象属性 理解并创建对象面向对象的语言都有标志:类的概念,通过类,我们创建很多个拥有相同属性和方法的对象。但是我们都知道,JavaScrip...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascript中如何判断一个新创建对象是无属性的空对象?
举报原因:
原因补充:

(最多只允许输入30个字)