Предполагая, что вы хотите получить доступ к аргументам arguments
, проблема заключается в том, что она является функцией стрелки и поэтому не имеет arguments.callee
привязки. Вы обращаетесь к IIFE.(function() { const printFuncName = (str) => { const info = str ? ' ' + str + ' ' : ' '; console.log(printFuncName.caller.name + info); // "myPub info " (maybe) }; return { myPub() { printFuncName('info'); } } }()).myPub();
В любом случае, вы никогда не должны использовать caller
. Это не стандарт, и вы можете просто ссылаться на эту функцию:
arguments.callee
Помните, что caller
это также не стандарт. Вы не должны использовать это. Не полагайтесь на это. Он будет бросать в строгом режиме. Может не работать в неаккуратном режиме.