亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Get stack trace in JavaScript (v8 only)

張漢慶 / 3502人閱讀

摘要:原理就是利用以及特有的使用這種方法可以獲取到相當(dāng)多的信息比如函數(shù)所在的文件的文件名行號列號等等不過缺點是只有支持其他瀏覽器可以利用來追溯調(diào)用棧直接上代碼使用

原理就是利用Error, 以及v8特有的API: JavaScript stack trace API.
使用這種方法可以獲取到相當(dāng)多的信息,
比如函數(shù)所在的文件的文件名, 行號列號等等...
不過缺點是只有v8支持.
其他瀏覽器可以利用arguments.caller來追溯調(diào)用棧.

直接上代碼:

// hook the prepare function
Error.prepareStackTrace=function(err,stack){
  // err: the Error object.
  // stack: stack info, an array of `CallSite`.
  // return full info of the stack.
  return stack;
};

// trace function
function trace(){
  var obj={};
  Error.captureStackTrace(obj);
  // or just use: var obj=new Error();
  var stack=obj.stack;
  // remove this function from stack
  stack=stack.slice(1);
  return stack;
}

使用:

(function callee(){
  console.assert(trace()[0].getFunction()===callee);
})();

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/85344.html

相關(guān)文章

  • V8 的 Error 對象與棧追蹤的妙用

    摘要:現(xiàn)狀最近在寫歡迎的時候,一直為錯誤的棧追蹤而愁。由于送入隊列的是函數(shù),因此在的參數(shù)可以放心地使用。其次,這些函數(shù)并不是立即在中調(diào)用的,而是由專門的隊列處理代碼來調(diào)用。 本文的講述都是以 Node.js 環(huán)境為例子,而 Node.js 使用的 JavaScript 引擎是 V8,因此理論上 Chrome 也能適用,其它瀏覽器我就不清楚了。 現(xiàn)狀 最近在寫 Rize(歡迎 star) 的時...

    Luosunce 評論0 收藏0
  • 關(guān)于Error.captureStackTrace

    摘要:在一些程序中,有時會看到這一語句,用于處理堆棧信息。為了不向使用者暴露自定義類的內(nèi)部細節(jié),在自定義類內(nèi)部使用時,往往會傳入?yún)?shù),其值即為自定義類的構(gòu)造函數(shù)。 在一些Node.js程序中,有時會看到Error.captureStackTrace()這一語句,用于處理堆棧信息。該語句的標(biāo)準定義是什么?如何使用?本文將就這些問題做一些探討。 標(biāo)準定義 從字面上來看,captureStackT...

    weakish 評論0 收藏0
  • 全面掌握Node命令選項

    摘要:譯者按作為開發(fā)者,有必要全面了解一下命令的所有選項,這樣在關(guān)鍵時刻才能得心應(yīng)手。命令有很多選項,可以用于調(diào)試代碼。這篇博客全面介紹了命令,可以提高大家的工作效率。訪問官方文檔,可以查看命令的所有選項。 譯者按: 作為Node.js開發(fā)者,有必要全面了解一下Node命令的所有選項,這樣在關(guān)鍵時刻才能得心應(yīng)手。 原文: Mastering the Node.js CLI & Comma...

    raise_yang 評論0 收藏0
  • 全面掌握Node命令選項

    摘要:譯者按作為開發(fā)者,有必要全面了解一下命令的所有選項,這樣在關(guān)鍵時刻才能得心應(yīng)手。命令有很多選項,可以用于調(diào)試代碼。這篇博客全面介紹了命令,可以提高大家的工作效率。訪問官方文檔,可以查看命令的所有選項。 譯者按: 作為Node.js開發(fā)者,有必要全面了解一下Node命令的所有選項,這樣在關(guān)鍵時刻才能得心應(yīng)手。 原文: Mastering the Node.js CLI & Comma...

    guqiu 評論0 收藏0
  • [譯] JavaScript 性能優(yōu)化殺手

    摘要:原文引言這篇文檔包含了如何避免使代碼性能遠低于預(yù)期的建議尤其是一些會導(dǎo)致牽涉到等無法優(yōu)化相關(guān)函數(shù)的問題一些背景在中并沒有解釋器但卻有兩個不同的編譯器通用編譯器和優(yōu)化編譯器這意味著你的代碼總是會被編譯為機器碼后直接運行這樣一定很快咯并不是 原文:http://dev.zm1v1.com/2015/08/19/javascript-optimization-killers/引言 這篇文檔包...

    MockingBird 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<