使用下划线检查自己的属性

Using Underscore to check own property

使用 Underscore 检查 global 对象是否拥有 Nodejs 控制台上的 parseInt 函数,

U = require('underscore')

U.contains(U.keys(global), 'parseInt') // false

U.has(global, 'parseInt') // true

为什么上面给出了相反的结果?

Object.keys returns 其描述符标记为 enumerable 的对象属性。在这种情况下,parseInt 不可枚举:

例如

Object.getOwnPropertyDescriptor(global, 'parseInt')

{
    "writable":true,
    "enumerable":false,
    "configurable":true,
    "value": function parseInt(){ ...}
}