>  Q&A  >  본문

javascript - onclick이 매개변수 포함 함수를 직접 호출할 수 없지만 onclick=function(){fn(p)} 형식으로 작성해야 하는 이유는 무엇입니까?

JS 초보자님, onclick이 매개변수 포함 함수를 직접 호출할 수 없지만 onclick=function(){fn(p)} 형식으로 작성해야 하는 이유는 무엇인지 물어보세요. 비매개변수 함수는 onclick=fn();과 같이 직접 작성할 수 있습니다.
기본 원리는 무엇인가요? 감사합니다

高洛峰高洛峰2696일 전822

모든 응답(2)나는 대답할 것이다

  • PHPz

    PHPz2017-05-19 10:33:56

    onclick은 실제로 다음과 같이 매개변수가 있는 함수에 직접 바인딩될 수 있습니다. onclick其实是可以直接绑定有参数的函数,如下:

    const input = document.getElementById('input');
    input.onclick = function(params){
      console.log(params);
    };

    但是,请注意,你的需求是执行函数fn(p),执行的结果是返回一个值,而不是一个函数。
    onclick作为点击时的回调事件,如果绑定,是一定要绑定一个函数的,而不是一个值。如下:

    input.onclick = function(){
      fn(p);
    };

    这里的意思是,给input绑定一个onclick事件,这个事件是一个函数,点击时,回调就被执行了,意味着函数也被执行了,函数执行时,其中的语句fn(p) 으아악

    단, 요구 사항은 fn(p) 함수를 실행하는 것이며, 실행 결과는 함수가 아닌 값을 반환하는 것입니다.
    onclick은 클릭 시 콜백 이벤트입니다. 바인딩된 경우 값이 아닌 함수에 바인딩되어야 합니다. 다음과 같습니다: 🎜 으아악 🎜여기서의 의미는 onclick 이벤트를 입력에 바인딩하는 것입니다. 이 이벤트는 클릭하면 콜백이 실행됩니다. 즉, 함수가 실행될 때에도 실행됩니다. fn(p) 문이 실행됩니다. 🎜

    회신하다
    0
  • 高洛峰

    高洛峰2017-05-19 10:33:56

    으아악

    이 클릭 기능을 바인딩하고 결과를 확인해 보세요

    회신하다
    0
  • 취소회신하다