
http://crocro.com/write/manga_javascript/wiki.cg …
の『タイマー』についての補足 他
マンガ中、タイマーの引数は『"tokei()"』と文字列で書きました。
function tokei() {
var ele = document.getElementById("target");
ele.innerHTML = Date().toLocaleString();
window.setTimeout("tokei()", 1000);
}
この部分には、関数を指定することもできます。
function tokei() {
var ele = document.getElementById("target");
ele.innerHTML = Date().toLocaleString();
window.setTimeout(tokei, 1000);
}
という部分があります。
"tokei()"と文字列で指定しているのに関数として扱われる理由
tokeiと指定してありtokei()で無いのに関数として扱われる理由を教えて下さい。
もしくは、参考になるURLを教えて下さい。
No.2ベストアンサー
- 回答日時:
こんにちは
書式が2種類あります。
https://developer.mozilla.org/ja/docs/Web/API/Wi …
文字列を引数にするとスクリプトのコードとして解釈されますが、この書式は非推奨になっています。
>tokeiと指定してありtokei()で無いのに関数として扱われる理由
>を教えて下さい。
第一引数にfunctionを渡すことになっているからですが、例えば
var func = function(){ alert("hoge"); }
setTimeout(func, 1000);
とした場合は、1秒後にfuncが実行されてアラートがでます。
setTimeout(func(), 1000);
とすると、setTimeoutの引数を評価する際にfuncが実行されてアラートがでますが、1秒後に実行される関数が存在しないので何も起きないことになります。
var func2 = function(){
return function(){ alert("hoge"); }
}
setTimeout(func2(), 1000);
とすれば、引数評価時にfunc2が実行され返される匿名関数が引数として評価され、1秒後にアラートがでることになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- JavaScript gasについて 1 2022/05/31 21:51
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
以下のコードを実行しても、オ...
-
VBA ステータスバー DoEvents
-
リクエスト結果が一瞬しか表示...
-
setTimeoutあるいはsetInterval...
-
デザイン時のVisible=Falseは実...
-
C#でボタン名を変更しても動く
-
javascript の setTimeout の引...
-
if(1){...}とはどういうことで...
-
WSHでエクセル」を検索表示
-
VBAマクロ、パスがありませんで...
-
Javascriptの関数について
-
VB.netでタイマーがスタートし...
-
EXCEL入力規則のリスト設定での...
-
初心者です。gulpでコンパイル...
-
JSPの処理の途中で、JavaScript...
-
C# showdialogの戻り値について
-
静的スコープとスコープチェー...
-
未サポートAPIを使用した時のエ...
-
VBA 図形を塗りつぶし無しにす...
-
javascriptで最初のところに戻...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
if(1){...}とはどういうことで...
-
JSPの処理の途中で、JavaScript...
-
JavaScriptでショートカットキ...
-
以下のコードを実行しても、オ...
-
デザイン時のVisible=Falseは実...
-
C#でボタン名を変更しても動く
-
〔Excel:VBA〕マクロの実行が異...
-
VBA ステータスバー DoEvents
-
リクエスト結果が一瞬しか表示...
-
ラベルの色がかわってくれない
-
1つのVBAコードをすべてのコア...
-
VBA SORT Applyでエラー
-
初心者です。gulpでコンパイル...
-
eval()の危険性の具体例を教え...
-
列を非表示にするマクロが実行...
-
PowerPointで時計表示
-
innerHTMLなどの反映タイミング
-
JavaScriptで、実行するたび値...
-
VB.netでタイマーがスタートし...
-
alert()が実行できない
おすすめ情報