Javascript - вызывающий конструктор объекта с помощью метода вызова - PullRequest
0 голосов
/ 29 октября 2019

Я немного запутался, как функционирует метод call, когда мы используем его для установки this с помощью конструктора базовых объектов. Вот пример конструктора базового объекта и метода call, используемого для установки this:

// Constructor, defines properties for a Sprite object
var Sprite = function(name) {
  this.name = name;
  this.x = 0;
  this.y = 0;
  this.v = 0;
  return this;
}

var Ball = function(name, radius, elasticity) {
  // Call the Sprite (i.e. base-object) constructor
  Sprite.call(this, name);

  // Define additional Ball specific properties
  this.radius = radius;
  this.elasticity = elasticity;
}

Что меня смущает, так это то, что мы нигде не храним и не устанавливаем это в функции Ballк возвращаемому значению функции Sprint.call(this, name). Я подумал, что вам нужно установить this что-то вроде этого внутри функции Ball:

this = Sprint.call(this, name);

Почему нам не нужно это делать, а просто вызвать метод call, без определения this, как я показал выше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...