[解決済み] 変数が関数型かどうかのチェック
2022-03-19 21:30:53
質問
次のように定義された任意の変数があるとする。
var a = function() {/* Statements */};
変数の型が関数型であるかどうかをチェックする関数が欲しい。
function foo(v) {if (v is function type?) {/* do something */}};
foo(a);
という変数があるかどうかを確認するにはどうすればよいですか?
a
が型である場合
Function
のように定義されていますか?
どのように解決するのですか?
確かにunderscoreの方法の方が効率的ですが、効率が問題でない場合の最適なチェック方法は、@Paul Rosaniaのリンク先のunderscoreのページに書かれています。
underscoreに触発され、最終的にisFunction関数は以下のようになりました。
function isFunction(functionToCheck) {
return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';
}
備考 : この解決策は、非同期関数、ジェネレーター、プロキシされた関数には使えません。最新の解決策については、他の回答を参照してください。
関連
-
Vueの「データを聴く」原則を解説
-
[解決済み】gulp anythingを実行するたびに、アサーションエラーが発生します。- タスク関数を指定する必要があります
-
[解決済み】エラー。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりませんでした。
-
[解決済み] 正規表現で変数を使うには?
-
JavaScriptのgetElementById、getElementsByTagNam、getElementsByClassNameの違いと使い方
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] オブジェクトが配列であるかどうかを確認するにはどうすればよいですか?[重複]。
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Vue Element-uiは、アイコンを追加するためのツリーコントロールノードを詳細に実装しています。
-
jQueryのコピーオブジェクトの説明
-
JavaScriptのクロージャの説明
-
vueの補間表現とv-textディレクティブの違いについて
-
[解決済み】「X-Frame-Options」を「SAMEORIGIN」に設定したため、フレームでの表示を拒否された。
-
[解決済み】React Nativeアプリをターミナルから実行するとエラーが発生する(iOS)
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
Uncaught TypeError: null のプロパティ 'offsetHeight' を読み取れませんでした。
-
OSSアップロードエラーを解決する: net::ERR_SSL_PROTOCOL_ERROR
-
[解決済み】コンポーネント内でuseStateからstate updaterを複数回呼び出すと、何度も再レンダリングされる。