Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работа одной функции (Помогите разобраться) (https://javascript.ru/forum/misc/79627-rabota-odnojj-funkcii-pomogite-razobratsya.html)

Biotoxsin 01.03.2020 22:27

Работа одной функции (Помогите разобраться)
 
Здравствуйте!

Подскажите как работает вторая часть кода?

function Name() {
	//какой то код
}

Name.Test = { //что именно тут делает "Name" ведь это имя функции? Какая тут логика? Или это уже объект с таким именем?
		exemple: true
}

Aetae 01.03.2020 22:42

Функция в javascript - наследник объекта.
alert(function(){} instanceof Object)
А потому с ней можно делать все те же штуки что и с обычным объектом.)

Biotoxsin 01.03.2020 23:17

Aetae, А что происходит после использования такого формата?
В функции просто создаётся объект "Test" с параметром "exemple: true" ?

Aetae 01.03.2020 23:20

Функция и есть объект.

Просто в отличие от базового объекта она, бонусом, может быть вызвана.
Если её не вызывать, то разницы между:
function Name() {
    //какой то код
}

Name.Test = { 
    exemple: true
}
и
var Name = {};

Name.Test = { 
    exemple: true
}
нет.

За исключением hoisting'а, но это к делу не относится.

Biotoxsin 01.03.2020 23:52

Aetae, Банальная экономия пространства имён? Или зачем?

Aetae 02.03.2020 01:00

Зачем хочешь, javascript свободный язык.)

Туда можно запихнуть, например, какие-то связанные с функцией данные.
Если функция - конструктор, то так можно задать подобия статических свойвств и методов.
Короче как фантазии хватит.

Это не какой-то особый специально придуманный для чего-то конкретного функционал, это просто особенность языка: в javascript всё - наследует от объекта.

Biotoxsin 02.03.2020 01:39

Aetae, Понял, спасибо за помощь =)


Часовой пояс GMT +3, время: 15:46.