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()函数,可以判断属性在实例上,在原型上,还是都不在。

  • 相关阅读:
    linux 共享内存 信号量 同步
    进程间通信 共享内存
    linux 多进程绑定问题
    C 语言调用python 脚本函数
    C 语言 和 python 调用 .so 文件
    好好学习
    three.js
    AMD、CMD、UMD 模块的写法
    webpack查缺补漏
    什么是 Web 服务器(server)
  • 原文地址:https://www.cnblogs.com/season-peng/p/6899505.html
Copyright © 2011-2022 走看看