誰花時間在語言如C JavaScript開發人員經常會錯過使用某些類型的內省,如日誌行號的能力,以及用什麼方法被調用當前方法從。那麼如果你使用的是V8(Chrome,Node.js),你可以採用以下方法。訪問行數
Q
訪問行數
46
A
回答
77
Object.defineProperty(global, '__stack', {
get: function(){
var orig = Error.prepareStackTrace;
Error.prepareStackTrace = function(_, stack){ return stack; };
var err = new Error;
Error.captureStackTrace(err, arguments.callee);
var stack = err.stack;
Error.prepareStackTrace = orig;
return stack;
}
});
Object.defineProperty(global, '__line', {
get: function(){
return __stack[1].getLineNumber();
}
});
console.log(__line);
以上將記錄19
。
與arguments.callee.caller
相結合,你可以得到更接近有用的日誌記錄您通過宏用C來獲得類型。
-2
顯然這工作太節點或Chrome瀏覽器(可能還有其他)
line = (o) ->
b = Error.prepareStackTrace
Error.prepareStackTrace = (_, stack) -> stack
e = new Error
Error.captureStackTrace e, o
s = e.stack
Error.prepareStackTrace = b
s[1].getLineNumber()
console.log line this
或:
lineNumber=(o)->E=Error;p='prepareStackTrace';b=E[p];E[p]=((_,s)->s);e=new E;E.captureStackTrace e,o;s=e.stack;E[p]=b;s[1].getLineNumber()
console.log lineNumber this
+1
它可以在V8中使用(由Chrome和Node.js使用),如我的帖子標題中所述。 – 2013-01-02 06:50:01
+8
Mike,我想OP是在談論JavaScript – 2014-11-08 11:13:25
相關問題
- 1. 訪問命令行參數
- 2. 訪問數據錶行
- 3. VB.net訪問數據庫中的行數
- 4. 發行訪問
- 5. MySQL訪問=訪問+1,凝視行爲
- 6. F#Deedle訪問行
- 7. 訪問前一行
- 8. 我如何訪問報表的行數
- 9. MS-訪問VBA eval函數的行爲
- 10. 訪問函數中的行變量
- 11. 如何訪問Windows命令行參數?
- 12. 並行訪問OpenCL內核參數值
- 13. 從元數據訪問「期望」行
- 14. 使用gdb訪問命令行參數
- 15. 並行化數據庫訪問
- 16. 運行從Excel計數訪問
- 17. google areachart無法訪問數據錶行
- 18. 如何訪問命令行參數?
- 19. 將行數據轉換爲列。訪問
- 20. 一次訪問數組中的整行
- 21. 從DLL運行函數訪問衝突
- 22. PHP - 訪問和執行數據「即時」?
- 23. 並行訪問MS Access數據庫
- 24. 訪問數據庫添加行事件
- 25. 訪問行從A R數據幀
- 26. 從命令行訪問SQLite數據庫
- 27. 訪問命令行參數在Objective-C
- 28. 訪問數據的行內單擊
- 29. 使用VS2010 IDE進行數據訪問?
- 30. Powershell訪問命令行參數
https://code.google.com/p/v8/wiki/ JavaScriptStackTraceApi#Customizing_stack_traces具有的V8堆棧跟蹤API可用其他方法的列表。一般名單:獲得OS 3.0,getTypeName,getFunction,getFunctionName,getMethodName,的getFileName,getLineNumber,getColumnNumber,getEvalOrigin,isToplevel,isEval,isNative,isConstructor – zamnuts 2013-05-14 23:02:36
也看到這個答案的一些示例代碼輸出整個跟蹤。 http://stackoverflow.com/questions/6163807/customized-stack-traces-in-google-chrome-developer-tools/10942404#10942404 – 2014-03-20 22:20:29
人們可以在這裏看到一些示例使用該API的:https://github.com /jameswomack/capn/blob/master/test/capn.js – 2014-03-24 10:29:46