import arrayLikeKeys from './arrayLikeKeys.js' import isArrayLike from './isArrayLike.js' /** * Creates an array of the own enumerable property names of `object`. * 创建自己的可枚举属性名' object '的数组。 * **Note:** Non-object values are coerced to objects. See the * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) * for more details. * *注:**非对象值被强制到对象。看到 * 规范[ES] (http://ecma-international.org/ecma-262/7.0/ # sec-object.keys) * 了解详情。 * @since 0.1.0 * @category Object * @param {Object} object 要查询的对象。 * @returns {Array} 返回属性名数组。 * @see values, valuesIn * @example * * function Foo() { * this.a = 1 * this.b = 2 * } * * Foo.prototype.c = 3 * * keys(new Foo) * // => ['a', 'b'] (iteration order is not guaranteed) * * keys('hi') * // => ['0', '1'] */ function keys(object) { return isArrayLike(object) ? arrayLikeKeys(object) : Object.keys(Object(object)) } export default keys