2015-01-04 56 views
0

用於Underscore檢查,如果global對象擁有Nodejs控制檯上parseInt功能,使用下劃線來檢查自己的財產

U = require('underscore') 

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

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

爲什麼它上面給出相反的結果?

回答

1

Object.keys返回其描述符標記爲enumerable的對象屬性。在這種情況下,parseInt不可枚舉:

例如,

Object.getOwnPropertyDescriptor(global, 'parseInt') 

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