この例の関数内から変数名を取得する方法:
// it should return A
var A = function(){ console.log(this.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;
トリムとスプリットを使用して、目的の値を取得します。
いいえ、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];