當我們在調試的時候,想獲取這個函數被哪個函數調用,以方便調試,但是 caller屬性被嚴格模式下被禁用了
我們可以通過 (new Error()).stack.split("\n")[2].trim().split(" ")[1]方法來獲取調用當前函數的那個函數名
解釋:new Error().stack 表示程序出錯位置的棧,[0]表示當前函數,[1]表示上一級函數調用的函數 [2]上上級....
例子:
function bb(){cc()} function cc(){console.log((new Error()).stack.split("\n")[2].trim().split(" ")[1])} bb() //打印出bb