Closed IgorKulishov closed 6 years ago
Создай и добавь свой пример рабочего на базе конструктора. Так же можешь создать свой пример конструктора. Я сознательно не объясняю тебе тему про prototype. Объясню после выполнения задания.
Ну, вот, например, создал по своей стихии такой конструктор:
function Swimmer(style, distance) {
this.style = style;
this.distance = function() {
console.log("This swimmer prefer " + distance + " " + this.style)
}
}
var bflySwimmer = new Swimmer("butterfly", "200");
bflySwimmer.style;
bflySwimmer.distance();
Только одну вещь не совсем понял. Если я убираю предпоследнюю строку bflySwimmer.style, то результат у меня выходит такой же, как если я эту строку оставлю. В чем тогда ее предназначение?
function Country(c_name, options) {
this.c_name = c_name;
this.options = function() {
console.log(this.c_name + " is " + options + " than WADA & IOC sanctions!")
}
}
var country_1 = new Country("Russia", "much stronger");
country_1.c_name;
country_1.options();
Ответ:
Дело в том что новый объект создаётся (вместе со свойствами и методом) вот в этой строке:
var bflySwimmer = new Swimmer("butterfly", "200");
А в последней и предпоследней строках мы просто обращаемся и читаем свойство и метод объекта bflySwimmer (т.е. не важно мы выводим свойства на печать или нет значение свойств и метода уже определено). Мы можем заменить две последние строчки на одну: bflySwimmer; В этом случае ты увидешь все свойства объекта.
Ну, примерно понятно. И еще один вопрос. Получается, что, создавая конструктор Swimmer я могу задать в скобках любые свойства и методы (style, distance, age, speed, sportswear, .......) и в любом количестве тех и других (2 свойства и 3 метода, или 5 свойств и 1 метод и т.д.) и потом определить их внутри для дальнейшего создания объектов?
Да, совершенно верно. Мы вначале создаем конструктор(ы) с любым набором свойств и методов и далее используем этот конструктор(ы) как лекало для создания одного или множества объектов на основе этих/этого конструктора(ов), подставляя слово new перед конструктором и подставляя значения аргументов в конструктор(ов).
В объектно-ориентированных языках таких как Java/C# создание класса (конструктора) является основным правилом: 1) т.е. мы вначале создаем классы (CarDeatails, ProductDescription, CookingInstruction и т.д.) в каждом их которых мы определяем набор свойств и методов определяющих набор будующего объекта (переменной). 2) Далее мы создаем новые объекты (переменные) с набором свойств определенных в классах (конструкторах) подставляя слово new перед конструктором и подставляя значения аргументов в классы (конструктор(ов)).
Да совершенно верно
On Feb 13, 2018 03:41, "g1er" notifications@github.com wrote:
Ну, примерно понятно. И еще один вопрос. Получается, что, создавая конструктор Swimmer я могу задать в скобках любые свойства и методы (style, distance, age, speed, sportswear, .......) и в любом количестве тех и других (2 свойства и 3 метода, или 5 свойств и 1 метод и т.д.) и потом определить их внутри для дальнейшего создания объектов?
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/g1er/Andrew/issues/7#issuecomment-365188768, or mute the thread https://github.com/notifications/unsubscribe-auth/AF43aMoeWVDPIh4Aqbbd4vMCngmk9M6uks5tUUq3gaJpZM4SBtHd .
Конструкторы
Конструкторы - как способ унаследования свойств и методов объектов.
Представим в качестве примере что у нас есть пустой образец трудового договора и нам надо создать и заполнить графы для разных профессий - мы можем создать сначала конструктор и использовать его как образец и далее использовать его в качестве темплейта и заполнить новые объекты для каждой професии уже со специфическими свойствами.
Рекомендую прочитать "Конструкторы" статью с книги: https://habrahabr.ru/post/241587/
Приведу примеры похожие с книги (только рабочий вместо кролика).
Конструктор это ф-ция, которая имеет несколько встроенных свойств и методов которые будут иметь унаследованные новые объекты. Каждое своейство объекта или его метод описывается при помощи слова "this". Коструктор не используется сам по себе, а обычно служит для генерации других объекторв при помощи слова new поставленного перед конструктором.