我做的研究相當多,但一直沒能找到任何答案,什麼似乎是一個簡單的問題:指的是當前的功能,而不使用其名稱/ arguments.callee的
我想關聯有功能的特性(在該項功能的靜態變量使用),像這樣:
function foo() {
if (!foo.counter) {
foo.counter = 1;
}
else {
foo.counter++
}
// rest of the function code goes here...
}
如果我以後更改函數的名稱,我不希望有內部改變對它的引用功能定義。 那麼,有沒有辦法引用當前正在執行的函數? (除了arguments.callee
現在已被棄用)。像thisFunction
這樣的關鍵字?
如果不是,沒有這樣的原因是什麼原因?
請注意,JavaScript中不存在靜態變量。你問的是JavaScript閉包的行爲。 – seliopou
除非您的腳本或函數使用嚴格的ES5模式,否則您不必擔心「棄用」。只要瀏覽器的JavaScript解釋器支持arguments.callee,您就可以安全地使用它。 –