引数のkey値をまとめた配列を返す。
■使用例
var obj = {
title : "悪魔城ドラキュラX 月下の夜想曲",
year : 1994,
author : "Michiru Yamane"
};
// re = [ "title", "year", "author" ];
var re = _.keys( obj );
■内部構造
_.keys = function(obj) {
// 引数が Object じゃない時。
if (!_.isObject(obj)) return [];
// Underscore 内部で nativeKeys = Object.keys; が宣言されているので、あれば適用する。
if (nativeKeys) return nativeKeys(obj);
var keys = [];
// Object の key値 を抽出して obj が key値 を持っていたら、 keys 配列に入れるforループ。
for (var key in obj) if (_.has(obj, key)) keys.push(key);
// IE9用と思われる部分。未検証。
// Ahem, IE < 9.
if (hasEnumBug) collectNonEnumProps(obj, keys);
// 結果の配列を返す。
return keys;
};