Closures
hookmetamethod
Ищет metamethod function у value и hook-ит эту function через hookfunction. First argument может быть любым value, который принимает raw metafield lookup. Second argument должен быть string metamethod name, а third argument должен быть function replacement. Если raw metafield lookup не находит named metafield, function вызывает “Metamethod doesn’t exist” для argument 2. Если metafield существует, но не является function, вызывает “Metamethod isn’t a function” для argument 2. Когда metafield является function, hookmetamethod вызывает hookfunction с found metamethod function как target и возвращает cloned original closure из hookfunction.
any
обязательно
Value, чей methods проверяется через raw metafield lookup.
string
обязательно
Metafield name, передаваемый в raw metafield lookup.
function
обязательно
Function, передаваемая в hookfunction как replacement для found metamethod function.
function
Cloned original metamethod closure, возвращенная hookfunction.