나는 최근 회사 Android 프로젝트에 바쁘기 때문에 무언가를 쓰는 데 시간이 거의 걸리지 않습니다. 내가 자유롭게 되 자마자, 나는 전에 본 것을 보았다. Android를 한 후 모바일 개발의 중요성이 더 중요하다고 생각합니다. 이제 기본 앱과 웹 앱이 주류입니다. 다시 말해, 다양한 브라우저 기반 웹 앱 프레임 워크가 점점 더 인기를 얻게 될 것이며 JS를하는 사람들은 점점 더 유망 해지고 있습니다. 또한 백엔드 개발에서 프론트 엔드 개발 및 모바일 개발로 점차 이동하기로 결정했습니다. 말도 안되는 말을하지 말고 "js 콜백 함수"라는 주제에 도달합시다.
콜백 기능에 대해 말하지만 많은 사람들이 의미를 알고 있지만 여전히 몇 가지 이해가 있습니다. 사용 방법에 관해서는 여전히 약간 혼란스러워합니다. 인터넷의 일부 관련 사항은 무슨 일이 있었는지 자세히 설명하지 않았으며 더 일방적입니다. 다음으로, 나는 단지 내 개인적인 이해에 대해 이야기하고 비판하지 마십시오. 거친 정의를 살펴 보겠습니다. "함수 a는 매개 변수가 있고이 매개 변수는 함수 b입니다. 함수 A가 실행되면 기능 B가 실행됩니다.이 프로세스는 콜백이라고합니다." 이 문장은 함수 B가 매개 변수 형태로 함수 A로 전달되고 첫 번째 실행 순서대로 실행 된 다음 매개 변수 B를 실행하는 순서대로 실행된다는 것을 의미합니다. B, B는 소위 콜백 함수임을 의미합니다. 먼저 다음 예를 살펴 보겠습니다.
함수 a (콜백) {alert ( 'a'); Callback.call (this); // 또는 Callback (), Callback.apply (this), 개인 선호도} 함수 b () {alert ( 'b'); } // 호출 a (b);결과적으로 'A'가 먼저 팝업되고 'B'가 나타납니다. 이런 식으로 누군가가 "그러한 코드를 작성하는 요점은 무엇입니까? 그다지 많이 사용되지 않는 것 같습니다!"
그렇습니다. 실제로 다음과 같이 글을 쓰는 것은 의미가 없다고 생각합니다. "기능을 호출하면 기능에서 직접 전화하십시오." 나는 당신이 당신에게 예비 이해를 줄 수있는 작은 예를 작성합니다. 이러한 종류의 매개 변수가없는 것은 실제로 코드를 작성하는 과정에서 거의 사용되지 않습니다. 대부분의 시나리오에서는 매개 변수를 전달해야하기 때문입니다. 다음은 매개 변수입니다.
함수 c (콜백) {alert ( 'c'); Callback.call (this, 'd'); } // call c (function (e) {alert (e);});이 호출은 익숙해 보입니까? 여기서 e 매개 변수는 'd'에 할당됩니다. 우리는 단순히 값을 캐릭터 분출에 할당하지만 실제로 값을 객체에 할당 할 수도 있습니다. jQuery에 E 매개 변수가 있습니까? 아래에 대해 이야기합시다
jQuery의 e 매개 변수는 콜백에 의해 어떻게 지정됩니까?
모든 사람이 jQuery 프레임 워크에 익숙하다고 생각합니다. 그것은 오랫동안 출시되었으며 개발 중에 사용됩니다. 비교적 간단합니다. API를 온라인으로 검색하는 것이 매우 편리하며 시작하기 쉽습니다. jQuery 프레임 워크에서는 현재 클릭의 좌표 및 클릭의 요소 개체와 같은 이벤트에서 일부 매개 변수를 가져와야합니다. 이 요구 사항은 jQuery에서 쉽게 다루기가 쉽습니다.
$ ( "#id"). bind ( 'click', function (e) {// e.pagex, e.pagey, e.target ....... 다양한 데이터});사용하기가 매우 편리합니다. 실제로,이 E 매개 변수의 할당은 콜백 함수를 통해서도 달성된다. 이 매개 변수에는 콜백 매개 변수를 사용하여 객체 값이 할당됩니다. JjQuery 소스 코드를 신중하게 연구 한 친구들이 이것을 발견했을 것입니다.
Ajax의 $ .get ( '', {}, function (data) {}) 데이터 매개 변수에는 동일한 원리가 있습니다.
jQuery 이벤트 객체에 콜백 함수가 어떻게 적용되는지 살펴 보겠습니다.
편의를 위해 $와 관련된 일부 구현에 대해 간단히 썼습니다. 나는 "Xiaotan JQuery"가 프레임 워크 구현에 비교적 가까운 방법을 가지고 있기 전에 썼다. 아래에 간단한 선택기를 쓰고 있습니다.
<div id = "컨테이너"> </div> <cript> var _ $ = function (id) {this.element = document.getElementById (id); } _ $. 프로토 타입 = {bind : 함수 (evt, 콜백) {var that = this; if (document.adeventListener) {this.element.addeventListener (evt, function (e) {callback.call (this, that.standadize (e));}, false); } else if (document.attachevent) {this.element.attachevent ( 'on'+evt, function (e) {callback.call (this, that.standadize (e));}); } else this. }; }, standadize : function (e) {var evt = e || window.event; var pagex, pagey, layerx, 레이어; // pagex 수평 좌표 Pagey 수직 좌표 레이어 클릭 클릭은 수평 좌표 레이어에 있습니다. 클릭 클릭은 요소의 수직 좌표 (evt.pagex) {pagex = evt.pagex; pagey = evt.pagey; } else {pagex = document.body.scrollleft+evt.clientx-document.body.clientleft; pagey = document.body.scrolltop+evt.clienty-document.body.clientltop; } if (evt.layerx) {layerx = evt.layerx; 계층 = evt.layery; } else {layerx = evt.offsetx; layerxy = evt.offsety; } return {pagex : pagex, pagey : pagey, layerx : layerx, layery}}} 창. $ = function (id) {return new _ $ (id); } $ ( 'container'). bind ( 'click', function (e) {alert (e.pagex);}); $ ( 'container1'). bind ( 'click', function (e) {alert (e.pagex);}); </script>우리는 주로 Standadize 기능의 구현을 살펴 봅니다. 나는이 코드에 대해별로 말하지 않을 것입니다. 반환 객체는
return {pagex : pagex, pagey : pagey, layerx : layerx, layery : layery}그런 다음 바인드 함수에서 코드 Callback.Call (that, standadize (e))를보십시오. 이 코드는 실제로 콜백 콜백을 사용하여 구현되는 e 매개 변수에 값을 할당합니다.
콜백 함수가 호출 될 때 익명 함수가 전달됩니다.
함수 (e) {}Callback.call (this, that.standadize (e))는 그러한 코드를 실행하는 것과 같습니다.
(함수 (e) {}) (standadize (e))이것은 또한 콜백 함수를 사용하는 jQuery에 대한 고전적인 것입니다. 이것이 E 매개 변수가 할당되는 방법입니다. 이것을 말한 후에, 당신은 아마 이것과 그것을 사용하는 방법을 잘 이해할 수있을 것입니다.
콜백은 다양한 프레임 워크에서 더 자주 사용됩니다. 때로는 혼자서 무언가를 쓸 때 실제 상황에 따라 사용할 수도 있습니다.
JS의 콜백 함수에 대한 위의 견해는 내가 공유하는 모든 컨텐츠입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.