StaDi
@StaDi
Курьер в it отделе

Отличие Complex.add от Complex.prototype.add?

Добрый день, сообщество!
Читаю книжку JavaScript (Дэвид Флэнаган, 5 изд.) и в 9 главе (9.3.6 глава, 176 стр. ) приводится пример по созданию "класса".
Помогите мне понять в чём разница метода .add и прототипа .add

function Complex(real, imaginary) 
{this.x = real; this.y = imaginary;};

Complex.prototype.add = function(that)
{return new Complex(this.x + that.x, this.y + that.y); };

Complex.add = function(a, b)
{return new Complex(a.x + b.x, a.y + b.y); };


Как говорилось ранее в книге, что вначале ищется метод в классе, а после в прототипе, но у нас он там и там, но с разным интерфейсом.

Спасибо!
  • Вопрос задан
  • 116 просмотров
Пригласить эксперта
Ответы на вопрос 1
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
var complex1 = new Complex(1,2);
var complex2 = new Complex(3,4);


var c3 = Complex.add(complex1, complex2);//сработает Complex.add = function(a, b)

var c4 = complex1.add(complex2);//сработает Complex.prototype.add = function(that)

var c5 = complex1.add(complex1, complex2);//сработает Complex.prototype.add = function(that) но параметр 2 просто проигнорируется и получим complex1 + complex1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы