Методы функции .apply () .call () .bind ()

JavaScript не может отправлять электронную почту из веб-браузера. Однако, отступив от решения, которое вы уже пытались реализовать, вы можете сделать то, что соответствует исходному требованию:

отправить сообщение без обновления страницы

Вы можете использовать JavaScript для создания значений, которые будут нужны электронной почте, а затем сделать запрос AJAX к серверному ресурсу, который фактически отправит электронное письмо.

Если вы не знакомы с AJAX, быстрый поиск в Google даст вам информацию о том, какие серверные языки / технологии вы используете, так что ваша часть зависит от вас. много информации. Как правило, вы можете быстро запустить его и запустить с помощью функции $ .ajax () jQuery. Вам просто нужно иметь страницу на сервере, которая может быть вызвана в запросе.

0
задан VicJordan 13 July 2018 в 12:41
поделиться

3 ответа

Ваша клавиша named находится под dog. Поэтому назовите его this.dog.named

let person = {
  firstname: "Benjamin",
  dog: {
    named: "Louie",
    owner: function() {
      return this.dog.named + " is " + this.firstname + "'s dog'";
    }
  }
}

console.log(person.dog.owner.call(person));

1
ответ дан Justinas 17 August 2018 в 12:53
поделиться

Функция требует объекта, который имеет свойство firstname и named.

Единственный способ добиться желаемого (без изменения этой функции) - создать новый объект, который имеет их и передает это на одну из функций, которые вы упомянули.

console.log(person.dog.owner.call({ firstname: "Benjamin", named: "Louie" }));
1
ответ дан Quentin 17 August 2018 в 12:53
поделиться

this.named должен быть this.dog.named, поскольку свойство named находится внутри объекта dog.

Здесь:

let person = {
  firstname: "Benjamin",
  dog: {
    named: "Louie",
    owner: function() {
      return this.dog.named + " is " + this.firstname + "'s dog'";
    }
  }
}
console.log(person.dog.owner.call(person));

1
ответ дан VicJordan 17 August 2018 в 12:53
поделиться
Другие вопросы по тегам:

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