質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

6回答

27640閲覧

jQueryで最初に記述する「$(function() {…」は何というのか?

miu_ras

総合スコア902

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2015/04/26 07:00

jQueryでコードの実行を、ドキュメントの読込み後に行わせるための記述である

lang

1$(document).ready(function() {…

lang

1$(function() {…

これに名称はあるのでしょうか?

(遅延実行?)
説明をする際などに名称が分からないと表現しにくく、もやもやしています。

jQueryで最初に記述するアレの呼び名。もしあるなら教えてください。
正式なものでなくとも、自分はこう呼んでいるというものがあればそれを教えていただきたいです。

よろしくお願いします。

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

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

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

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

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

guest

回答6

0

自己解決

How jQuery Works | jQuery Learning Center
「Launching Code on Document Ready」では
「jQuery has a statement known as the ready event:」
「For example, inside the ready event,…」と書いていました。

この点を採用すると、「レディメソッド」というより「レディイベント」の方が適切なのかもしれません。

ただ質問の意図としては、以下の3つのグループに共通する呼び名はないか、というような感じです(最初からそう書けよと言われてしまいそうですが…)。最後の一つは、本来の目的としては$の競合を解消するためではありますが、他の2つと同じ目的で使用されているのをしばしば見かけますので含めました。

■jQueryではないJavaScript
(function() { … }());

■jQuery(1)
$(document).ready(function() { … });
$(function() { … });

■jQuery(2),
jQuery(function($) { … });
(function($) { … })(jQuery);

自分でもいろいろ調べた結果を書いておきますと
これといった呼び名はなさそう。ただし近い言葉もしくは独自の呼び名として
「遅延評価(lazy evaluation)」
「遅延プログラミング(lazy programming)」
「必要呼び(call-by-need)」
「遅延処理(lazy processing)」
あたりなのかなぁと、今は思っています。

名称とするために「遅延評価構文」「遅延処理構文」とかかなと。
どうでしょう。

遅延評価 - Wikipedia
遅延プログラミングと遅延評価
うのらぼ。 - 【JavaScript】jQueryの読み込み待ちとか関数の処理待ちとか遅延処理っぽいこと

※一応、「自己解決」として書き込みますが、本当に自己解決したわけではありません。他にご意見がありましたらいつでも追加で書き込みお願いします。年単位で気長に待っています。

投稿2015/05/01 20:22

編集2015/05/01 20:25
miu_ras

総合スコア902

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

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

miu_ras

2015/05/24 06:47

>■jQueryではないJavaScript >(function() { … }()); こう書きましたが、これはDOM構築を待たずに実行されますね…。
guest

0

<del>質問は 即時関数 を意図していますか?</del>

(読み返してみたら外していそうなので削除します)

投稿2015/05/01 15:54

編集2015/05/01 16:05
yohhoy

総合スコア6191

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

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

miu_ras

2015/05/01 19:22

ありがとうございました
guest

0

私も正式名称はわかりませんが、
$(function() の方は、単純ですが「ドルカッコファンクション」って呼ばせてもらってます…。

投稿2015/05/01 05:53

muro

総合スコア99

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

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

miu_ras

2015/05/01 19:21

「ドルカッコファンクション」ですか。 それ面白いですね。もしかしたら今後使うかもしれません。 ありがとうございました。
guest

0

特別な名称は無いと思ってますが・・・あるのかなあ?
確かに コンストラクタ みたいな特別な名前が付いていると口頭での説明が楽ですよね。

説明される相手が

lang

1$(document).ready(function(){});

のことを

lang

1DOMツリー構築後、かつ画像などの外部ファイル読み込み前に実行する関数をjQueryに登録するコード

だと理解できていれば、口頭では「レディ イベント」って言うのが伝わりやすいかなと。

誤解しにくいように伝えたい場合は「jQuery の ドキュメント レディ イベント」って言ってる。
(単語そのまんまだし)

実行されるタイミングを強調する人は「DOM構築直後イベント」とか言ってる。

ロード イベント」って言う人もいるけど、それだと

lang

1window.onload = function(){};

lang

1function pageLoad(){}; // ASP.NET

と混乱するのであまり使わない。

投稿2015/04/30 11:50

twck

総合スコア314

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

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

Cf_cwd

2015/04/30 12:08

レディメソッドな気がするのですがどうでしょうか (確かにイベントをセットするメソッドですが)
twck

2015/05/01 00:07

確かにコードの説明としては .ready の部分は レディメソッド です。 会話の相手が初心者なら 「レディメソッドで関数をセットしている」 というようにコードの部品、1つ1つを正しく解説することがあります。 でも質問者さんが聞きたかったのは 「$(document).ready(function(){}); で ●●処理をする」 というような会話をするにあたって 「$(document).ready(function(){});」 の部分を簡単に言い表せる特別な言葉がないだろうか?ということだと思います。 とすると「レディメソッドでセットする関数で●●処理をする」というのは 会話において冗長すぎます。 「レディメソッドで●●処理をする」だと「メソッド」という言葉のせいで、 プログラマーの任意のタイミングで処理が動かせるイメージになります。 「レディイベントで●●処理をする」だとブラウザ側のタイミングで 処理が動くイメージになり、この会話においては適切な意訳だと思うのです。 まあ結局、状況や相手、職場のルールによって言葉は変わるので、 私が言っているのは1つの意見でしかなく、 レディメソッド も正しいと思います。 それに私が知らないだけで「$(document).ready(function(){});」に 該当する単語があるのかもしれませんから。
Cf_cwd

2015/05/01 14:22

まぁそうですね 動詞のように使うなら 「レディメソッドで○○を(イベントに)セットする」 が比較的正しいと思っただけです。 名称があるのかという質問でしたので質問文にあるのはレディイベントではなく(レディイベントをセットする)レディメソッドが正しいだろうという横槍でした。 蛇足だったかもしれませんね。
miu_ras

2015/05/01 19:28

>でも質問者さんが聞きたかったのは >「$(document).ready(function(){}); で ●●処理をする」 >というような会話をするにあたって >「$(document).ready(function(){});」 >の部分を簡単に言い表せる特別な言葉がないだろうか?ということだと思います。 そうです。そのとおりです。 「特別な名称は無い」が正解っぽいですね。 あえていうなら「レディメソッド」という感じでしょうか。 ただ、これだけ頻繁に使われると名前がほしいものですけどね。 ありがとうございました
guest

0

$()の引数に関数を渡しているので呼ぶなら高階関数と呼びますね。
高階関数/Wikipedia

因みに余談として
(function (){
//
}());
のような記述を即時関数、匿名関数(無名関数や関数文とは使い分けられているかもしれない)というように呼びます。
(即時関数が呼び方としては主流な気がする)

投稿2015/04/29 14:47

Cf_cwd

総合スコア730

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

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

miu_ras

2015/05/01 19:19

表現しづらく意図が伝わりにくいです。すみません。目的に着目した呼び方はないかということなんです。 私が最初に書いた記述なら「レディメソッド」、jQueryではないJavaScriptの流行では「即時関数」が使われます。 どちらもおおむね、DOM構築後の実行を期待して記述すると思うのですがその呼び名は無いかということです。 例えば「条件に応じて処理を仕分けるために使うのは?」といった場合「IF文」「SWITCH文」言語によっては「SELECT文」が使われます。が、それは単なる言語の実装の違いに過ぎず、マシン語レベルではおそらく違いはないだろうし、目的に着目した呼び名としては「分岐文」と呼ぶのが適切だよね、とかそういう話です。逆に伝わりにくいかもしれませんが。
Cf_cwd

2015/05/01 22:56

なるほど。であればload完了時処理に着目した用語はないと思われます。 もっと広い分野として delayやwait、それこそloadとかになりますよね。 日本語的なニュアンスだと「処理完了後実行」みたいな。 遅延実行(delay、wait)よりもonloadっぽいニュアンスが入っているかと。 でも日本語に表すのにはちょっと厄介な部分な気がしますね。 言い表そうとするとそのままonloadのイベントリスナーとかになっちゃいそう。 初期処理と解釈するならinit(初期化)とかでもあてはまるけどこじつけに近いかも
miu_ras

2015/05/02 05:57

確かに「遅延実行」だとsetTimeoutを指す言葉として使う方が適切な気がします。 また「init(初期化)」だと「読込み後」でなくともいいので少し違うと思います。 しかし2つをあわせた「遅延初期化」だと意味合い的に少し近づくかもしれません。 「処理完了後実行」だけだと「何の処理の完了後なのか」不明なので不十分に感じます。 >なるほど。であればload完了時処理に着目した用語はないと思われます。 そうですね。いろいろ調べてもこれといったものは出てきませんでしたし、質問をしても出てこないので、(おそらく)無いという結論にほぼ至っています。 なのですが、「load完了時処理」はかなりいいと感じました。 「load完了時処理」 「load完了後処理」 「load完了後初期化」 「DOM構築後処理」 「DOM構築後初期化」 とか。候補が増えましたが。 思考が整理され結論に近づいたような気がします。 ありがとうございました
guest

0

.ready()メソッド.ready()イベントハンドラとか?
そういう話ではない?

投稿2015/04/26 13:13

tohshima

総合スコア374

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

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

miu_ras

2015/04/28 07:10

そういう話なのかもしれません。 ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問