zoukankan      html  css  js  c++  java
  • JS学习笔记——对象属性判断

    1. 判断对象是否为空

    我们可以使用fon-in语句来枚举对象的属性,属性被枚举是没有顺序的。使用for-in语句就可以判断对象是否为空,for-in语句还会枚举对象原型上的属性。当对象是null或者undefined时,函数isEptObj()也返回true,表示对象是空的。

    function isEptObj(o) {
        for(var t in o) {
            return !1;
        }
        return !0;
    }
    s1 = null;
    s2 = undefined;
    s3 = [];
    s4 = {};
    isEptObj(s1);//true
    isEptObj(s2);//true
    isEptObj(s3);//true
    isEptObj(s4);//true
    
    Object.prototype.age = 24;
    isEptObj(s1);//true
    isEptObj(s2);//true
    isEptObj(s3);//flase
    isEptObj(s4);//flase
    

    2. 判断对象是否包含某属性

    使用对象的hasOwnProperty()方法可以判断属性是否在实例上。如果该属性不在实例上,会有两种情况:1.该属性在原型上; 2.该属性不在原型上。所以我们还要配合in语句(for-in的非循环版本)继续判断该属性,进而可以得出该属性在实例上,在原型上,还是都不在。

    s1 = {};
    s1.name = "abc";
    Object.prototype.age = 24;
    console.log(s1.hasOwnProperty('age')); // flase
    console.log(s1.hasOwnProperty('name')); // true
    console.log(s1.hasOwnProperty('salary')); // flase
    

    3. 总结

    配合使用in语句和hasOwnProperty()函数,可以判断属性在实例上,在原型上,还是都不在。

  • 相关阅读:
    记一次centos 服务器中毒事件
    heatmap
    this
    购物车
    带标签的无缝轮播
    无缝轮播
    图片滚动百分百宽度
    选择排序
    冒泡排序
    tab标签页
  • 原文地址:https://www.cnblogs.com/season-peng/p/6899505.html
Copyright © 2011-2022 走看看