Как-то попробовал взять свойство у false, к пример:
false.a
и получил
undefined
Тогда решил посмотреть и обнаружил, что false это не примитив, а объект (если я правильно все понимаю), у которого есть конструктор Boolean().
Но одновременно
false instanceof Boolean
Выдает
false
Получается false не является экземпляром Boolean.
И теперь я плохо понимаю как это устроено. Был бы рад, если кто-нибудь объяснит. Или укажет пальцем мне в документацию, потому что я там не нашел (либо плохо искал).
Уточню вопрос:
У false есть свойство constructor.
И вопрос в том, откуда у примитивного типа поведение объекта?
Ответ на вопрос:
http://habrahabr.ru/post/150730/