Garfields
@Garfields

Как работает данный скрипт?

Уже час туплю и не могу понять. Объясните, пожалуйста.

Что значит? и как это вообще работает?
woman.husband = man;
man.wife = woman;


function marry(man, woman) {
  woman.husband = man;
  man.wife = woman;

  return {
    father: man,
    mother: woman
  }
}

let family = marry({
  name: "John"
}, {
  name: "Ann"
});


Пример взят отсюда клик
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
@gh0sty
Веб-разработчик. Пишу под Python Django.
Не сильно шарю в js - но это типа примитивного ООП. Крч ты по let family = marry... временно создаешь 2 объекта у которых есть параметры name (но так-то это словарики). Далее ты первому объекту (словарю) устанавливаешь атрибут husband ссылающийся на весь объект (словарик) woman, и наоборот - во второй строчке функции. И возвращаешь father: первый объект (словарь) с записями name: John, wife: {...} и второй объект (словарь) с записями name: Ann, husband: {...}. И совмещаешь 2 объекта (словаря) в один объект (словарь) в переменной family. И теперь чтобы избежать рекурсии - я предположу, что в js присваивание - то же самое что и ссылка на объект.
И у тебя выйдет:
family = {
    father: {
        name: 'John',
        wife: // ссылка на объекто-словарь Ann-ы
    },
    mother: {
        name: 'Ann',
        husband: // ссылка на объекто-словарь John-а
    }
}


Хз как там с ООП в js, поэтому везде и указал словарь (мейби оно так и работает)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Arik
woman.husband = man;
man.wife = woman;


woman.husband, man.wife - свойства объекта (переменные объекта), в данном случаи делают ссылку друг на друга (женят)

function marry(man, woman) {
  woman.husband = man;
  man.wife = woman;

  return {
    father: man,
    mother: woman
  }
}

marry/свадьба - действие (функция), которое принимает две переменные/объекта (два паспорта) и возвращает объект/документ -свидетельство о браке или некий документ, что они теперь семья, где мужчина будет отцом, а дама мамой.. хотя это все как-то не по современному)
Ответ написан
@Karpion
У меня сложилось ощущение, что создаётся структура family; и надо бы посмотреть её поля/параметры.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы