HTML onclick - Как получить доступ к функции - PullRequest
0 голосов
/ 20 сентября 2018

Мне нужно получить доступ к функции, которая находится в другой функции, из html-щелчка в отдельном файле, я думаю, потому что это в другой функции, поэтому она возвращается как неопределенная, я могу получить доступ к функциям, которые не вложены в мой индексный файлно тот, который мне нужен, я не могу.Функция находится в моей функции сокета, так как она использует свой идентификатор.

функция, к которой я пытаюсь получить доступ, имеет следующий формат:

io.of('/main').on('connection', function (socket) {

    socket.on('chat message', function (msg) {

     function oneCall() {

Это функция oneCall, к которой я пытаюсь получить доступ,Когда я вызываю функцию, которая выходит за рамки этого сокета, она работает нормально, но мне нужна функция внутри сокета?

Спасибо.

1 Ответ

0 голосов
/ 20 сентября 2018

Возможно, вы захотите посмотреть область действия функции .Если ваша функция существует только внутри другой функции, то вы не можете получить доступ к этой функции за пределами области действия другой функции

Пример:

function exampleFunction() {
    function otherFunction() {
        //do something
    }

    otherFunction();
}

Из этого минимального примера мы создаем функцию и вызываем еефункция внутри другой функции.Теперь, если вы попытаетесь вызвать otherFunction вне области действия exampleFunction , она не будет работать, поскольку находится вне области действия exampleFunction . otherFunction существует только в области действия exampleFunction .

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

Пример:

function exampleFunction() {    
    otherFunction();
}

function otherFunction() {
    //do something
}

Функции теперь работают независимо, и другие функции можно использовать где угодно.Вы можете выбрать otherFunction внутри exampleFunction , которая будет выполнять otherFunction каждый раз, когда exampleFunction вызывается.

Если вы хотите использовать otherFunction в функции onclick , то вы можете сделать это сейчас, поскольку она независима и существует в глобальной области действия .

Пример:

<button onclick="otherFunction();">Click me!</button>

С точки зрения вашего последнего комментария о доступе к конкретным значениям (идентификатор сокета в вашем случае) в вашей функции oneCall Вы можете проанализировать значение как параметр для функции.

Пример:

function oneCall(socketID) {
    //do something
}

Параметр socketID в функции OnceCall теперь работает как любая переменная JavaScript, и вы можете использовать ее для выполнения любой логики.

И для анализа значения идентификатора сокета в вашей функции вы должны сделать что-то вроде этого:

onecall(variable_containing_socket_id);

Вы также можете заявить больше, чемодин параметр в функции.

Пример:

function oneCall(socketID, anotherParameter, andAnotherOne) {
    //do something
}

onecall(socket_id, value, anotherValue);

Простая информация от W3Schools о параметрах функции здесь .

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