В настоящее время я изучаю все, что могу о ООП с помощью JavaScript, и у меня есть следующий код:
var Person = (function() {
var protectedMembers;
function capitalizeString(str) {
return str.charAt(0).toUpperCase() + string.slice(1);
}
function PersonConstructor(name, surname, protected) {
protectedMembers = protected || {};
protectedMembers.capitalizeString = capitalizeString;
this.name = capitalizeString(name);
this.surname = capitalizeString(surname);
}
return PersonConstructor;
}());
Итак, как JavaScript узнает, что PersonContructor является конструктором, а не прописной строкой? Я имею в виду, я знаю, что я имею в виду, что функция PersonConstructor является конструктором, но как движок JavaScript или что-то еще определяет это? Это только потому, что я возвращаю это? Или это потому, что я использую это в PersonConstructor? Или это из-за обеих вещей?
Я посмотрел другие вопросы StackOverflow, в которых говорится о JavaScript и конструкторах, но они не ответили на этот конкретный вопрос, если я что-то не заметил.
Спасибо!