鉤子(HOOK)函式

2022-07-20 22:45:27 字數 1632 閱讀 6925

我的理解是:鉤子函式可以 鉤住 我喜歡的東西(在window中就是我喜歡的訊息),這應該就是鉤子函式叫鉤子函式的原因吧。。?

鉤子函式的意義(用處)在於:我寫了乙個window程式,在程式中我寫了一段**(呼叫window的api來實現鉤子),這段**被系統通過系統呼叫,把其掛入系統中,然後我就可以對我感興趣的訊息進行處理,

我寫的這段**包含有乙個**函式,當有我喜歡的訊息發出時,這個**函式就會執行,所以說,鉤子就是指的**函式

下面是乙個程式掛載全域性鉤子從而被360攔截的例子(其實360也有鉤子,不然怎麼知道別人要掛載鉤子呢?即360可以攔截「掛載鉤子」的訊息。這個彈窗就是在360的鉤子函式中建立的)

對於前端來說,鉤子函式就是指再所有函式執行前,我先執行了的函式,即 鉤住 我感興趣的函式,只要它執行,我就先執行。此概念(或者說現象)跟aop(面向切面程式設計)很像

乙個鉤子函式的例子

1

function

hooks()

16function

getfuncname (fn) ;

24return '';25}

26try

;');

33 _context[_funcname].prototype.ishooked = true;34

return

true

;35 }catch

(e)39

}40 function.prototype.unhook = function

(realfunc,funcname,context)

50 _context[_funcname] =_context[realfunc];

51delete

_context[realfunc];

52return

true;53

}54},55 cleanenv:function

() 59

if(function.prototype.hasownproperty("unhook"))

62return

true;63

}64};65}66

67var hook =hooks();

68hook.initenv();

6970

//這個是要執行的正常的函式

71function

test()

7475

//這個是鉤子函式。此鉤子函式內心戲:

76//

我只喜歡test函式,所以我必須出現在她前面(在她前面執行),這樣她才能看到我。

77function

hookfunc()

8081

//hookfunc鉤住test

82 test.hook(test,hookfunc,window,"test");

8384 window.onload = function

()

鉤子函式 hook

鉤子函式 一些預定義的函式,由定義者呼叫,使用者提供實現.解釋 如vue中定義了多個生命週期鉤子,vue在內部定義並呼叫這些鉤子函式 不管是否有具體實現 開發者在template中給出各鉤子函式的實現,也可以不實現 vue的生命週期鉤子,vue生命週期鉤子參考 vue原始碼 var lifecycl...

Hook技術 全域性鉤子

hook.cpp include stdafx.h include hook.h include hinstance g hinst const int keypres ask 0x80000000 鍵盤掩碼常量 char g prvchar pragma data seg shared stati...

Delphi中的鉤子函式HOOK詳解

delphi中的鉤子函式 hook,即系統掛鉤捕捉鍵盤操作例項 在windows系統下,應用程式常常要截獲其他程式的訊息,並加以處理 例如跟蹤鍵盤或滑鼠的按鍵狀況等 現在,我們假設在前台進行正常操作,在後台利用hook程式為系統安裝乙個鍵盤掛鉤,當有按鍵操作時,系統發給鍵盤掛鉤對應的訊息,而這些訊息...