Cat cat = new cat(); Cat и cat разные слова, так как различаются заглавные и строчные символы, а у разных слов и значение разное. Ну прикол для строгих сишников то, что функцией конструктором может быть любая функция learn.javascript.ru/constructor-new Но обычно она идет с большой буквы, здесь же хрень полная, а если есть правило "Имя функции следует тем же правилам, что и имя переменной. Основное отличие – оно должно быть глаголом, т. к. функция – это действие." то не выполнение приводит к еще больше запутанности и пониманию и нахер такие учебники, уж учитесь тут learn.javascript.ru