[英]Get anonymous function name
如何在此示例中從函數中獲取變量名稱:
// it should return A
var A = function(){ console.log(this.name); }
有這樣的事嗎?
這個功能是匿名的; 它沒有名字。 但是,你可以給它一個名字:
var A = function a() {};
然后可以通過Function.name
訪問其名稱:
var A = function a() {};
A.name
> 'a'
我知道這是一個舊線程,但仍然在搜索結果中。 所以僅供參考:
解決方案可能只是使用堆棧跟蹤。
var stack = new Error().stack;
使用trim和split來獲得所需的值。
不,Javascript中沒有類似的東西。 該函數是匿名的,因此它沒有名稱,你想要的是模糊的,因為函數可以很容易地引用它的任意數量的變量,如:
var a, b, c, d;
a = b = function(){ console.log(this.name); };
c = b;
d = c;
a = b = 5;
// a and b no longer refer to the function, but c and d both do
你實際上想要完成的是什么? 我確信還有另一種方法可以實現它。
在Chrome和Firefox的最新版本中,如下所示。 我只推薦這個用於調試目的(例如非生產中的javascript跟蹤)
var myNameInChrome = /.*Object\.(.*)\s\(/.exec(new Error().stack)[0];
var myNameInFF = new Error().stack.split("@")[0];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.