#javascript #node.js
#javascript #node.js
Вопрос:
У меня есть длинный список функций в некоторых библиотеках, и я хотел бы получить к ним доступ через структуру при написании кода. Я попытался сделать следующее:
function fn1(){doSomething}
function fn2(){doSomething}
//more functions...
function fn100(){doSomething}
group1 = {
"set1":{"item1": fn1,
"item2": fn2,
"item3": fn3
}
//more sets...
}
command = {
"group1": group1,
"group2": group2,
"group3": group3
}
Цель состоит в том, чтобы написать
command.group1.set1.item1()
Хотя описанный выше подход работает, он не предоставляет this
функции.
Есть ли какой-либо способ создать шаблон, который позволяет это сделать правильно и передает this
РЕДАКТИРОВАТЬ: я стремлюсь передать оригинал this
в конечную функцию, что в основном означает цепочку this
через структуру объекта.
Комментарии:
1. Что вы подразумеваете под «это не предоставляет
this
функции»? В настоящее времяthis
он будет привязан к набору, в котором находится функция. К чему вы ожидаетеthis
привязки при вызове метода?2. вы можете использовать call и apply для передачи this при выполнении функции для передачи ссылки на this .
Ответ №1:
Используйте bind для привязки любых this
функций, которые вы хотите, к функциям
Комментарии:
1. да, bind кажется правильным советом, однако bind применяется только к функциям, а не к объектам, которые я использовал для создания иерархии «навигации». Похоже, мне нужно будет изменить свой подход и использовать функцию / класс вместо структуры объекта.