Может кто-нибудь объяснить мне этот код, он на JavaScript, и я пытаюсь понять, как создаются наблюдаемые

Я не очень понимаю, что происходит в этом коде. Мы передаем функцию и получаем объект, а затем создаем новый класс? заранее спасибо и как .subscribe({}) знает о следующем значении. Я был бы признателен, если бы кто-нибудь объяснил, как его отлаживать

function Observable(subscribe) {
  this.subscribe = subscribe;
}
const one$ = new Observable(observer => {
  observer.next(1);
  observer.complete();
});

one$.subscribe({
  next: value => console.info(value), // 1
});
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Are we passing a function

да

and getting an object

да. new создает экземпляр класса, который является объектом.

and then creating a new class ?

Нет.

Объявление функции создает класс:

function Observable(subscribe) {
  this.subscribe = subscribe;
}

Вызов его с помощью new создает экземпляр этого класса:

const one$ = new Observable(value);

how is .subscribe({}) is aware of the next value.

Потому что вы передаете это явно:

observer.next(1);

так это функция или что next(1)

JS Lover 09.04.2019 10:33

@JSLover — next — это функция. Вы определили это здесь: { next: value => console.info(value), // 1 }

Quentin 09.04.2019 10:33

@JSLover next — это функция, определенная через стрелочная функция.

Script47 09.04.2019 10:33

как насчет этого observer.next(1);

JS Lover 09.04.2019 10:37

@JSLover — А как насчет этого?

Quentin 09.04.2019 10:37

Я не понимаю этот синтаксис, значит ли это, что у наблюдателя будет свойство next ?

JS Lover 09.04.2019 10:39

@JSLover — Да, и значение — это функция.

Quentin 09.04.2019 10:39

почему мы не можем сделать что-то вроде этого ``` let y = {} undefined y.x(1) VM284:1 Uncaught TypeError: y.x is not a function at <anonymous>:1:3 ```

JS Lover 09.04.2019 10:43

@JSLover — потому что вы не определили x

Quentin 09.04.2019 10:47

а здесь наблюдатель => {Observer.next(1); наблюдатель.полный(); } мы говорим, что он принимает функцию, а затем возвращает объект?

JS Lover 09.04.2019 10:57

@JSLover — этого фрагмента кода нет. Это функция, которая принимает объект в качестве аргумента, затем вызывает для него два метода и ничего не возвращает.

Quentin 09.04.2019 10:58

Другие вопросы по теме