属性检测

对象作为属性的集合,属性又包括自有属性继承属性

  检测方法:

    \__   in运算符:

        \__ var obj = { x:1 }

          console.log( 'toString' in obj )  // true # 检测继承属性,继承自Object.prototype这一原型

          console.log( 'x' in obj ) // true #检测自有属性

    \__   hasOwnProperty:

          \__ var obj = { x:1 }

            console.log( obj.hasOwnProperty( 'toString' ) )  // false # 检测继承属性失败

            console.log( obj.hasOwnProperty( 'x' ) ) // true #检测自有属性

    \__   propertyIsEnumerable:

          \__ var obj = { x:1 }

              console.log( obj.propertyIsEnumerable( 'toString' ) )  // false # 检测继承属性失败

           console.log( obj.propertyIsEnumerable( 'x' ) ) // true #检测自有属性,且是显式属性

    结论:in运算不仅可以检测自有属性,还可以检测继承属性,其余两种方法仅能检测自有属性,它们之间的区别又由 存取器属性 来界定,暂且不谈

  

  对象的自有属性可以被枚举,如果要设置不可枚举可使用存取器属性

  枚举方法:

    \__  for/in:

       \__  var obj = { x : 1 , y : 2 }

         obj.propertyIsEnumerable( 'toString' )  //  false #不可枚举,ES5标准赋予

         console.log( 'toString' in obj ) //true #注意,for/in搭配起来用属性的可枚举特性才会生效

         for ( key in obj )

         console.log( key )  // x , y

 

最新文章

  1. Hive on Spark安装配置详解(都是坑啊)
  2. Nlog 记录日志到 sqlite
  3. jsonp 实现sso
  4. Troubleshoot Refused VNC Connection in CentOS 7
  5. firefox与chrome中对select下拉框中的option支持问题
  6. Python 基础【第一篇】环境部署
  7. LeetCode_Palindrome Partitioning II
  8. boost参考博客
  9. Gym100814B Gym100814F Gym100814I(异或) ACM International Collegiate Programming Contest, Egyptian Collegiate Programming Contest (2015) Arab Academy for Science and Technology
  10. postman模拟HttpPost请求的方法
  11. ACM Secrete Master Plan
  12. java记事本开发
  13. keepalived.conf配置说明
  14. [java]创建一个默认TreeMap() key为什么不能为null
  15. 用javascript写原生ajax(笔记)
  16. LuoGu P1939 【模板】矩阵加速(数列)
  17. 【性能提升神器】STRAIGHT_JOIN
  18. exe4j中"this executable was created with an evaluation version exe4j"的解决
  19. Android sharedUserId 和系统权限
  20. [py]类和实例方法/内建方法

热门文章

  1. AI 帮助涂鸦
  2. Delphi下的WinSock编程
  3. centos源码安装mysql5.7.25-boost
  4. 关于Boost在工程下的配置
  5. 003dayPython学习初始模块和字节码
  6. ES6新语法的介绍
  7. vivado封装IP
  8. COPD——团队项目测试心得
  9. 递归----Python
  10. CSS3简单画出3d图形