🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

2249閲覧

Javascriptで無名関数の中で自身の変数名を取得したい

supereater712

総合スコア29

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/09/08 10:04

実現したいこと

無名関数の中で自身の変数名を取得したいです。
下記のB.b関数のような、プロパティ入りの関数では関数リテラルが使えないため、
変数に入った無名関数から名前を取り出せずにいます。
A , B.b 関数から変数名を取り出す方法があれば、御指南のほどよろしくお願いいたします。

GASの非strictモードです。

該当のソースコード

GAS

1 2 var A=function(){ 3 Logger.log(arguments.callee.name); // output : "" 4 } 5 var B={}; 6 B.b=function(){ 7 Logger.log(arguments.callee.name); // output : "" 8 } 9 10 A(); // wanted output: "A" 11 B.b(); 12 13

試したこと

GAS

1 function A(){ 2 Logger.log(arguments.callee.name); // output : "A" 3 } 4 A();

functionリテラルで定義すれば、上の関数はちゃんと自身の関数名:aが返ります。
ただ、元のソースコードのB.bのような、オブジェクト形式の名前で関数リテラルは使えません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ブラウザでは出来ますが、GoogleAppsScriptではこういう書き方って出来ませんか?

GoogleAppsScript

1 var A=function A(){ 2 Logger.log(arguments.callee.name); 3 }

投稿2019/09/08 12:46

kei344

総合スコア69596

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

supereater712

2019/09/08 13:50

var a=function a(){ Logger.log(arguments.callee.name); // output : "a" } var B={}; B.b=function b(){ Logger.log(arguments.callee.name); // output : "b" } a(); B.b(); と、同じ記述でまさに求めてた名前を取得できました。 任意の関数名を変数定義と同じ行に書けますね。 関数Bも、実質メソッド名だけ取得するということができ、 結果、GASでもおかげ様で成功しました。 感謝しております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問