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

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

ただいまの
回答率

90.47%

  • JavaScript

    17023questions

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

  • jQuery

    6930questions

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

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

解決済

回答 6

投稿

  • 評価
  • クリップ 1
  • VIEW 10K+

miu_ras

score 601

jQueryでコードの実行を、ドキュメントの読込み後に行わせるための記述である
$(document).ready(function() {…

$(function() {…
これに名称はあるのでしょうか?

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

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

よろしくお願いします。
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 6

check解決した方法

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/24 15:47

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

    こう書きましたが、これはDOM構築を待たずに実行されますね…。

    キャンセル

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/04/28 16:10

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

    キャンセル

0

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


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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/05/02 04:19

    表現しづらく意図が伝わりにくいです。すみません。目的に着目した呼び方はないかということなんです。

    私が最初に書いた記述なら「レディメソッド」、jQueryではないJavaScriptの流行では「即時関数」が使われます。

    どちらもおおむね、DOM構築後の実行を期待して記述すると思うのですがその呼び名は無いかということです。

    例えば「条件に応じて処理を仕分けるために使うのは?」といった場合「IF文」「SWITCH文」言語によっては「SELECT文」が使われます。が、それは単なる言語の実装の違いに過ぎず、マシン語レベルではおそらく違いはないだろうし、目的に着目した呼び名としては「分岐文」と呼ぶのが適切だよね、とかそういう話です。逆に伝わりにくいかもしれませんが。

    キャンセル

  • 2015/05/02 07:56

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

    初期処理と解釈するならinit(初期化)とかでもあてはまるけどこじつけに近いかも

    キャンセル

  • 2015/05/02 14:57

    確かに「遅延実行」だとsetTimeoutを指す言葉として使う方が適切な気がします。
    また「init(初期化)」だと「読込み後」でなくともいいので少し違うと思います。
    しかし2つをあわせた「遅延初期化」だと意味合い的に少し近づくかもしれません。

    「処理完了後実行」だけだと「何の処理の完了後なのか」不明なので不十分に感じます。


    >なるほど。であればload完了時処理に着目した用語はないと思われます。

    そうですね。いろいろ調べてもこれといったものは出てきませんでしたし、質問をしても出てこないので、(おそらく)無いという結論にほぼ至っています。

    なのですが、「load完了時処理」はかなりいいと感じました。
    「load完了時処理」
    「load完了後処理」
    「load完了後初期化」
    「DOM構築後処理」
    「DOM構築後初期化」
    とか。候補が増えましたが。

    思考が整理され結論に近づいたような気がします。
    ありがとうございました

    キャンセル

0

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

説明される相手が
$(document).ready(function(){});
のことを
DOMツリー構築後、かつ画像などの外部ファイル読み込み前に実行する関数をjQueryに登録するコード
だと理解できていれば、口頭では「レディ イベント」って言うのが伝わりやすいかなと。

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

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

ロード イベント」って言う人もいるけど、それだと
window.onload = function(){};

function pageLoad(){};  // ASP.NET
と混乱するのであまり使わない。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/04/30 21:08

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

    キャンセル

  • 2015/05/01 09:07

    確かにコードの説明としては .ready の部分は レディメソッド です。

    会話の相手が初心者なら
    「レディメソッドで関数をセットしている」
    というようにコードの部品、1つ1つを正しく解説することがあります。

    でも質問者さんが聞きたかったのは
    「$(document).ready(function(){}); で ●●処理をする」
    というような会話をするにあたって
    「$(document).ready(function(){});」
    の部分を簡単に言い表せる特別な言葉がないだろうか?ということだと思います。

    とすると「レディメソッドでセットする関数で●●処理をする」というのは
    会話において冗長すぎます。

    「レディメソッドで●●処理をする」だと「メソッド」という言葉のせいで、
    プログラマーの任意のタイミングで処理が動かせるイメージになります。

    「レディイベントで●●処理をする」だとブラウザ側のタイミングで
    処理が動くイメージになり、この会話においては適切な意訳だと思うのです。

    まあ結局、状況や相手、職場のルールによって言葉は変わるので、
    私が言っているのは1つの意見でしかなく、
    レディメソッド も正しいと思います。

    それに私が知らないだけで「$(document).ready(function(){});」に
    該当する単語があるのかもしれませんから。

    キャンセル

  • 2015/05/01 23:22

    まぁそうですね
    動詞のように使うなら
    「レディメソッドで○○を(イベントに)セットする」
    が比較的正しいと思っただけです。

    名称があるのかという質問でしたので質問文にあるのはレディイベントではなく(レディイベントをセットする)レディメソッドが正しいだろうという横槍でした。
    蛇足だったかもしれませんね。

    キャンセル

  • 2015/05/02 04:28

    >でも質問者さんが聞きたかったのは
    >「$(document).ready(function(){}); で ●●処理をする」
    >というような会話をするにあたって
    >「$(document).ready(function(){});」
    >の部分を簡単に言い表せる特別な言葉がないだろうか?ということだと思います。

    そうです。そのとおりです。


    「特別な名称は無い」が正解っぽいですね。
    あえていうなら「レディメソッド」という感じでしょうか。
    ただ、これだけ頻繁に使われると名前がほしいものですけどね。

    ありがとうございました

    キャンセル

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/05/02 04:21

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

    キャンセル

0

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

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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/05/02 04:22

    ありがとうございました

    キャンセル

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

  • ただいまの回答率 90.47%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • JavaScript

    17023questions

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

  • jQuery

    6930questions

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