JS вызов функции работает - PullRequest
0 голосов
/ 07 августа 2020

У меня есть вопрос об основах JS.

Итак, в JS мы все согласны с тем, что функция - это объект. Итак, давайте предположим следующее:

const mainFunction = () => { //Do stuff };

mainFunction.nested = () => { //Do other stuff };

Итак, у меня есть две функции:

  • основная функция, которую я могу вызвать следующим образом: mainFunction()
  • и вложенная функция, которую я могу вызвать так: mainFunction.nested()

Я прекрасно понимаю, что могу получить доступ к вложенной функции, потому что она находится внутри объекта, и я обращаюсь к ней с помощью . like JS синтаксис хочет.

Но мне интересно, как JS понять, какой код запускать, когда я просто вызываю mainFunction()?

Дайте мне знать, достаточно ли я понимаю , Глупый вопрос ...

Спасибо

1 Ответ

4 голосов
/ 07 августа 2020

и вложенную функцию, которую я могу вызвать следующим образом: mainFunction.nested ()

Это не вложенная функция. Это вложенная функция:

function example() {
    function nested() {
    }
}

Это просто функция, назначенная свойству.

Но мне интересно, как JS может понять, какой код запускать, когда я просто позвоните mainFunction()?

Поскольку двусмысленности нет, вы имеете в виду mainFunction. Если вы хотите использовать другую функцию, вы должны обратиться к ней непосредственно (как вы показали, mainFunction.nested()). Именно так нет двусмысленности между obj и obj.prop; первая относится к объекту, вторая - к свойству объекта.

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