JavaScript

Что такое prototype? (подробности внутри)

Не могу въехать, что это такое и как его использовать ((
Я прочитал три статьи но "нечего "( если мягко выразится) не понял. То есть понимание не пришло. Они наверно писались для запущенных программистов))) А я всего-лишь становлюсь на этот путь))) Хотел бы вас попросить, написать простой пример как использовать prototype приблизительно c такой же детальностью как в тексте ниже, был бы очень благодарен.

function abc (var1, var2) { document.write(var1 + var2) }
создается функция c именем abc(имя используется для того чтобы можно было идентифицировать её(функцию) в коде тем самым обращаясь к ней по имени и вызывая её.
Пример: abc(); В данном случае передаются параметры (var1 и var2)

1) Что такое параметры? параметры это переменные содержащие значения (данные) определенного типа.
2) Какие типы могут быть? Разные типы, бывают числовые, строчные, логические и д. р)
3) Для чего передаются параметры? (чтобы их можно было использовать и получать результаты.
4) Как я могу их использовать? В данном случае параметры используются для того чтобы сложить их вместе var1 + var2, а потом вывести на экран с помощью document.write. В итоге мы получаем document.write(var1 + var2)
5) Всё понятно, а зачем там фигурные скобки? Чтобы показать что всё что находится внутри них (между ними, всё что включено в них) это собственность функции abc().

Извините за писанину)) просто накипело)))))) Когда автор статьи пишет её полагаясь на понимание учитывая свой глубокий опыт в программировании, при этом не учитывая начальный, а порой нулевой уровень читающего. Ну вот, выговорился как на площади))) Надеюсь задержание и расстрел не последует))))

Всем заранее спасибо за ответы)))
Osman Kemran
Osman Kemran
341
function Animal () {
this.age = 10;
}

function Cat () {
this weight: 3;
}

Cat.prototype = new Animal(); //Передает наследование
cat = new Cat();
console.log(cat.age); //Выведет 10;
*******************************************
Но новый ES6 более интересный и проще его использовать

class Animal {
constructor() {
this.age = 10;
}
}

class Cat extends Animal {
constructor() {
super(); //обязательное условие extends для наследования у родителя
this.weight = 3;
}
}

Потом:

cat = new Cat();
console.log(cat.age); //выведет 10;
МК
Монитор Клавиатуровичь
68 690
Лучший ответ
function RadiusVector(x, y) {
if (!(this instanceof RadiusVector)) {
return new RadiusVector(x, y);
}
this.x = x;
this.y = y;
if (typeof this.distance !== 'function') {
RadiusVector.prototype.distance = function () {
return Math.sqrt(this.x * this.x + this.y * this.y);
};
}
}

let rv = RadiusVector(3, 4);
console.log(rv.distance());
Osman Kemran спасибо, объяснил, бл***ть)))

А этот кусок кода я перед кроватью у себя повешаю
if (!(this instanceof RadiusVector)) {
return new RadiusVector(x, y);
}
параметры это переменные которые внутри функции будут конкретно для ввода чисел при вызове, чтобы ты туда их ввёл
функция якраб (лул, лол) {
var лул;
var лол;
document.write(лул +" ага " + лол);
}
якраб (1,2);
якраб ("я рак", "краб");
Вячеслав Дерий
Вячеслав Дерий
57 561
Очень много вопросов. Это надо книгу писать, чтоб на всё ответить. Если ты новичок, читай книги для новичков, а не статьи. Кстати, JavaScript - плохой выбор для первого языка, но в любом случае надо книгу читать. Лучше начни с Паскаля (например, PascalAbc.net).
У тебя вопросы разных уровней. Тут и элементарные вещи и сложные понятия, как например прототип. Ты хочешь за один вечер всё изучить?
Олег Иманаев
Олег Иманаев
36 282
Osman Kemran ))) На самом деле, я прохожу книгу))) В ней затрагивается PHP, MySQL (почти всё понял, только возникли некоторые сложности с сессиями PHP) также JavaScript, Ajax(веревку с мылом уже приготовил xD он рассматривается следующим за JavaScript) HTML и CSS (В них уже основы знаю)))
Я не рассчитываю на глубочайшее понимание со всеми тонкостями и особенностями, да и это невозможно, всё упирается во время. Хочу понять основы для начала, а потом уже если буду сталкиваться с этим углубляться
Osman Kemran Заминка вот как раз на этом прототипе и возникала