Я пытаюсь понять, почему метод «keys» не возвращает свойства и методы объекта String. Другими словами, что уникально в этом объекте? Я протестировал эту теорию, создав общий объект, предоставив ему 1 свойство и 1 метод, а затем запустив на нем метод .keys, и он возвратил как свойство, так и метод. Поскольку String является объектом в Javascript, предполагается, что применение метода .keys к нему будет делать то же самое - как минимум, вернуть метод .length в возвращаемом наборе.Почему «.keys» возвращает «undefined» при применении к объекту String в Javascript?
Использование консоли Chrome, я побежал следующие случаи:
typeof String // "function"
"function" == typeof String // true
"object" == typeof String // false
Две ноты в дополнении к моему основному вопросу: В рамках JavaScript:
- является функцией не является объектом?
- Не объекты большинства вещей вне примитивов и некоторых других особых случаев?
Непонятно, как название вопроса относится к содержанию вопроса. – Pointy
Вы можете утверждать, что любой примитив имеет внешний вид объекта при проверке. Все они обладают неотъемлемыми свойствами и могут рассматриваться как сами объекты. Вопрос довольно академичен, хотя ИМО. –
@Iain, из того, что я читал на MDN, Javacsript автоматически преобразует примитивы строк в объекты String. Но в моем примере я тестировал сам объект String. – brooklynsweb