學習JS是一條崎嶇不平的道路...我想了解我的代碼中發生了什麼, 因此console.log();
似乎是我的朋友。在函數堆棧中的JavaScript內部記錄函數/對象名稱的函數棧
有時我甚至不知道錯誤來自哪裏(或者我可能只是 太愚蠢)所以我想更好地記錄我的應用程序堆棧。我試圖找到一個答案這個 簡單又複雜的問題:
如何做到這一點?除了與console.log()
例如獲得名稱的函數(構造)的其中console.log
被稱爲證明是有問題:
function SomeFunction(argument1,argument2) {
console.log(this+'> 01 message');
console.log(this.name+'> 02 message');
console.log(this.constructor+'> 03 message');
console.log(this.constructor.name+'> 04 message');
console.log(this.prototype+'> 05 message');
console.log(this.constructor.method+'> 06 message');
}
SomeFunction.prototype.sayHello = function(} {
console.log(this+'> 01 says Hello');
console.log(this.name+'> 02 says Hello');
console.log(this.constructor+'> 03 says Hello');
// and so on... //
}
大二哪一個是正確的? SomeFunction.constructor.name
正在工作, 但這種語法每次都很長,所以像
var fn = this.constructor.name
是有道理的,但那樣做效率不高。
有人可以指向我的良好做法方向,我如何從我的代碼擠壓 正確的日誌信息?
FYI:我搜索了幾本關於這個簡單的主題的書籍,並且 都沒有提到它。
在開發人員工具中使用斷點代替 – Joseph 2012-07-09 19:42:01
抱歉,但這不是我尋找的答案 – Inoperable 2012-07-09 19:45:02
我認爲你留下了語言和API提供的語法(但繁瑣)你..你可以像你提到的那樣將它投擲到別的東西上......(fn)但是爲什麼?這些額外的幾個字符不會破壞銀行的文件大小(如果他們這樣做,然後做你最初的建議) – rlemon 2012-07-09 19:47:51