>  기사  >  웹 프론트엔드  >  JavaScript 함수를 연결할 수 있나요?

JavaScript 함수를 연결할 수 있나요?

WBOY
WBOY원래의
2022-06-29 16:57:381286검색

Javascript 함수는 후크될 수 있습니다. 후크는 함수의 실행 프로세스를 동적으로 수정하거나 결과를 반환하는 방법입니다. JavaScript는 동적 언어로서 일반적으로 후크 작업을 수행하고 특정 매개변수나 변수를 인쇄하는 데 사용됩니다. . 출력, 교체 및 기타 작업.

JavaScript 함수를 연결할 수 있나요?

이 튜토리얼의 운영 환경: Windows 10 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

JavaScript 함수를 연결할 수 있나요?

예.

Hook은 함수의 실행 과정을 동적으로 수정하거나 결과를 반환하는 방법으로 실제 응용 분야에서 매우 널리 사용됩니다. 동적 언어인 Javascript는 Hook 작업도 수행할 수 있습니다. Javascript 언어가 발전하면서 Hook 메소드가 점점 더 많아지고 있습니다.

hook는 말 그대로 후크를 의미합니다. 리버스 엔지니어링 분야에서는 일반적으로 특정 매개변수 및 변수에 대한 수신, 출력, 교체 및 기타 작업에 사용됩니다.

예제는 다음과 같습니다.

샘플 코드

function add(a,b){
return a + b
}

hook code

이 두 매개변수의 값은 Hook을 통해 얻을 수 있으며 이는 코드를 추가하는 것과 같습니다. (a,b)를 반환하기 전에 console.log를 사용하여 이 두 값을 분석용으로 출력할 수 있습니다. 그런 다음 다음 방법을 사용하여 함수를 다시 작성할 수 있으며 이 방법은 JavaScript

let _add = add
add = function () {
  console.log('arguments', arguments)
  let result = _add.apply(this, arguments)
  console.log('result', result)
  return result // 如果不需要result 则可直接return _add()
}

전체 코드

function add(a, b) {
  return a + b
}
 
let _add = add
add = function () {
  console.log('arguments', arguments)
  let result = _add.apply(this, arguments)
  console.log('result', result)
  return result 
}
 
add(1, 2)

add(1,2)를 다시 호출하면 인수 매개 변수와 결과 3이 매우 출력됩니다. 간단한 HOOK를 실현했습니다.

그러나 이 예는 너무 단순할 수 있습니다. 제가 표현하고 싶은 것은 Hook을 통해 우리가 Hook하고 싶은 함수와 변수를 찾을 수 있고, 일련의 연산(함수 복사, 메타 프로그래밍)을 통해서만 가능하다는 것입니다. 함수가 이 변수를 트리거하거나 사용(값, 수정)하면 원하는 결과(암호화 전, 암호화 후 등의 전후 결과)를 얻을 수 있습니다. 이것이 우리의 목적입니다.

책에 제시된 예는 특정 원래 함수에 일부 함수를 추가하고 싶지만(예: 여기에 추가) 원래 함수를 다른 개발자가 작성한 것일 수 있으므로 원래 함수 자체를 직접 수정하면 Unknown BUG로 변경하므로 위의 방법을 사용하여 원래 기능을 파괴하지 않고 원래 기능을 다시 작성할 수 있습니다.

【관련 추천: javascript 비디오 튜토리얼, web front-end

위 내용은 JavaScript 함수를 연결할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.