・本文ではなく、returnへほとんどの処理を記述しているコードがあります
・どういう意図があるのでしょうか?
・複数の関数をreturnする関数が、たくさんあります
・どの関数も、関数本文より、returnする関数内容の方が何倍も多いです
hoge = function(){
//中略
return {
a : function(){
},
b : function(){
//これが延々続く
//return関数内で即時関数実行したり
■質問1
・処理の結果をreturnすると思っていたのですが、returnメインでそこに処理を記述していくやり方のメリットは?
■質問2
・hoge.aでアクセスしているのですが、関数定義=オブジェクト定義でしょうか?
・下記aメソッドは、同じ意味?
hoge = {
a: function(){
hoge = function(){
//中略
return {
a : function(){
},
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
>・処理の結果をreturnすると思っていたのですが、returnメインでそこに処理を記述していくやり方のメリットは?
これは、勘違いをしています。return { a:function(){……} } というのは、結果をreturnしているのです。このa:function……というのは、処理ではなく「関数オブジェクト」です。
この{……}という書き方は、JSON形式によるオブジェクトリテラルです。つまり、オブジェクトを値として記述したものです。長くて内部に関数処理などが書かれていますが、それらもすべて「値」なのです。オブジェクトを結果としてreturnする際には、こうした書き方になってしまう、ということです。
>・hoge.aでアクセスしているのですが、関数定義=オブジェクト定義でしょうか?
この場合のaは、hogeオブジェクトのメソッドですね。aの関数定義そのものもオブジェクトです。JavaScriptでは、関数はFunctionオブジェクトというオブジェクトですから、関数を値として設定したものはすべてオブジェクトです。
>・下記aメソッドは、同じ意味?
hoge = {
a: function(){
これは、hogeオブジェクト内にaというプロパティを用意し、それに関数オブジェクトを設定しています。つまり、aというメソッドをオブジェクト内に用意しています。
hoge = function(){
//中略
return {
a : function(){
},
これは、aというメソッドを持つオブジェクトをreturnする関数オブジェクトをhogeに代入しています。
最終的にhoge.a()と使う場面においては同じですが、後者の場合、hoge()とすることでaメソッドを持つオブジェクトを返すことができます。前者は関数オブジェクトではなく一般的なオブジェクトがhogeに設定されていますからhoge()することはできません。
おそらく、{……}という記述がオブジェクトの記述であるということ、関数は基本的にオブジェクトであるということをしっかり理解すれば、これらの記述もわかってくると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ローカルのレジストリを読みたい
-
JavaScriptで ブラウザの閉じる...
-
contenteditableで編集した内容...
-
PDFフォームで条件つき金額を表...
-
csvファイルを読み込み、該当項...
-
GoTo文とかSelect文の処理の仕...
-
gas 全角数字を半角数字に変換
-
Excel vba 配列内の最大値を求...
-
「終了していない文字列型の定...
-
javascriptで「オブジェクトを...
-
JSPの処理の途中で、JavaScript...
-
「戻る」ボタン使用時のフォー...
-
VBScriptでのforms[0]など配列...
-
フォームバリデーションする際...
-
正整数の半角数字かどうか判定する
-
jQuery ui Datepicker 明日以降...
-
ページ横スクロールでjQuery li...
-
javascriptでsjisの文字列からu...
-
初心者です。gulpでコンパイル...
-
1つのVBAコードをすべてのコア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローカルのレジストリを読みたい
-
Webページ中の javascript をVB...
-
Shell.ApplicationでのIEオブ...
-
エクセル2010のvbaについて
-
イベントevt?evt.target:event....
-
フォルダ内のファイル名を取得...
-
タブブラウザで focus() を実...
-
evtとは
-
event.srcElementの動的設定
-
jQuery for内にある配列の後の...
-
画面間でのJavaScrip...
-
チェックボックスを認識・不認...
-
JavaScriptで複数のプロパティ...
-
Dateオブジェクトの大小比較の...
-
for...inのプロパティ取り出し...
-
CSSのクラスを動的に変更 classで
-
javaScriptでグローバル変数に...
-
イベントリスナに登録される fu...
-
IEでDOMインターフェースを拡張...
-
文字を移動させその位置を表示...
おすすめ情報