• ベストアンサー

JavaScript 宣言 について

java基礎程度の経験があります。 私が眺めていたソースに(このページです。http://lagstyle.com/icm/icm.html) var getProbability = function(ranking) { ~ } というコードがありました。 このコードはどのような宣言なのか教えてほしいです。 また、この文は、 var getProbability(ranking) { ~ } ともできますか?(意味不明だったらすみません!) よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5088/13303)
回答No.1

var getProbability = function(ranking) は getProbability という変数に関数オブジェクトを代入するという処理です。 var getProbability(ranking) にする事は出来ません。 var は変数の宣言ですから変数名を指定する必要があります。

kazu-box
質問者

お礼

回答ありがとうございます! 申し訳ないですが、もう2ついいですか? 1. varr getPobability = function(ranking){~} は javaで言うところの void getProbability(int ranking) {~}と考えてさしつかえないですか? 2. この処理で返ってくる値がほしい時は getPobability(~) で大丈夫なのでしょうか? できればよろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5088/13303)
回答No.2

> 1. javaで言うところの class Hoge { void Hoge (int ranking) {~} ・・・} Hoge getPobability = new Hoge(); の方がイメージが近いと思います。 JavaScriptは全てがオブジェクトという、他の言語とは異なる考え方で作られている言語なので、functionで宣言されていても単純な関数では無い場合があります。 > 2. > この処理で返ってくる値がほしい時は > getPobability(~) > で大丈夫なのでしょうか? 大丈夫です。

kazu-box
質問者

お礼

なるほど! つまりfunctionで宣言されているそれぞれが 個々のjavaのクラス・・・ ってイメージでよろしいんですかね? ありがとうございます! 勉強になりました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • JavaScript → VB 関数の中の関数

    あるページのプログラムをVBに置き換えて利用したいのですが、 どう書き換えたらvbに実装できるかわかりません このページのスクリプトです。 http://lagstyle.com/icm/icm.html var getTotalProbability = function(player, rank) { var ranking = []; var ret = 0; // 内部関数で再帰 var makeRanking = function() { // 自分の順位なら、最後の順位に自分を入れて確率を計算 if(rank == ranking.length) { ranking.push(player); ret += getProbability(ranking); ranking.pop(player); return; } for(var i = 0; i < 10; i++) { if(i == player) { continue; } for(var j = 0; j < ranking.length; j++) { if(ranking[j] == i) { break; } } if(j != ranking.length) { continue; } // 他人を次の順位に入れて再帰する ranking.push(i); makeRanking(); ranking.pop(i); } }; makeRanking(); return ret; }; JavaScriptの 関数の中の関数、 再帰などを vbに置き換えて実装することは可能でしょうか? またその方法を教えていただきたいです。

  • Javascript教えてください!

    現在、javascriptを勉強するために、 http://www.kagitaku.com/diary/2010/07/08/javascript-stopwatch.html に掲載されているストップウォッチのソースコードを解読しています。 しかし、以下のソースコードでつまづいてしまいました。 var h = Math.floor(difftime / (60 * 60 * 100)); var hs = String(h); hs = (h < 10)? "0" + hs: hs; 3行目の文はいったいどのような働きをするのか丁寧に教えていた頂けないでしょうか? よろしくお願い致します。

  • javascript var

    javascript 「var」について ソースコード function hello(name){ 「var」 msg = "your name " + name; return msg; } var greet = hello("Tom"); console.log(msg); ソースコードの2行目の頭に「var」をつけるかつけないかでコンソールエラーになるか、ならないかが変わるのですが「var」をつけると何故かエラーになるのですが、その理由が分かる方いらっしゃいますか? 「var」は「バリアブル」の略で変幻自在みたいな意味だと思うのですが、それをつけてエラーになる理由が良く分からなくて質問致しました。 馬鹿な質問ですが答えて頂けると助かります。m(__)m

  • [javascript]DOCTYPE宣言対応についてお教え下さい。

    [javascript]DOCTYPE宣言対応についてお教え下さい。 皆様、お世話になります。 JavaScriptがDOCTYPE宣言によって動作しなくなるということを質問したり解決しているブログは多く見ますが・・・それでも解決出来ず・・・すみません、お教えください。 動作するソースはこちらです。 <html> <head> <title></title> <script language="JavaScript"> function init() { effect(); } function effect() { var element = document.getElementById("sample"); var wanna_width = window.innerWidth - 500; element.style.backgroundColor = 'red'; element.style.width = wanna_width; } </script> </head> <body onload="init();" onresize="effect();"> <div id="sample">sampleText</div> </body> </html> これに、以下のDOCTYPE宣言を入れたいのです。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 事前調査通り、動作しません。 1)CSS 初期包含ブロックが body 要素ではなく html 要素になるのでdocument.documentElement から取得しないといけない。 2)0以外のサイズ指定には単位が必要。 このようなことは何となく調べがついたのですが。 お手数をお掛け致します。 お教え下さいませ。 追記:重ねてお手数をお掛け致しますが、すこし具体的に改善方法をお教えいただけますと非常に助かります。

  • このJavaScriptソースを解説して下さい

    JavaScript勉強中です。とあるサイトのソースの一部なのですが 何が書いてあるのかわかりません。 どなたか解説してください。 ----------ソースここから---------- <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-23877599-2']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> ----------ソースここまで---------- 全体的にわからないのですが、1行目だけでも教えてください。 var宣言で、論理和?(||)が使われてて、さらに配列?らしき括弧が続いてます。 これはなんという構文なのですか?

  • Javascriptのスコープについて。

    私は何か大きな勘違いをしているでしょうか? for(var i=0; i<10; i++){ for(var i=0; i<10; i++){ alert(i); } } 単純なこのサンプルで、ループは総計100回回るはずだと思うのですが、 外側ループのローカル変数であるiが、なぜか内側ループのローカル変数iと同一視され、 結果10回しか回りません。 どこがおかしいでしょうか。 比較対象として、以下を実行しました。 var i=3; (function(){ var i = 2; alert(i); })(); alert(i); 結果は2, 3となりました。 スコープは機能しています。 前者はfor文だからおかしくなったのでしょうか? ・・・while文で書き下すと、あ、for文の()中で宣言するカウンタ変数というのは、該当for文のスコープの外に出ちゃっているんですね・・・。 つまり、for(var i・・・)と宣言したカウンタ変数のスコープは、for(){}のスコープではなく、その一個外に所属すると。。 こういう解釈でよいのでしょうか?よろしくお願い致します。m(_ _)m var i=0; while(i<10){ var i=0; while(i<10){ alert(i); i++; } i++; }

  • [javascript]「*=」の意味

    お世話になります。 js初心者ですが、質問させてください。 現在jsを学んでおり、ネットで手ごろなコードを探し読んでいます。 下記のコードは画像にカーソルをのせたとき、画像を差し替えるというものですが、 「*=」の意味が分かりません。 ★★★★★★★★★★★★★★★★★★★ jQuery(function($) { var postfix = '_on'; $('#nav_global a img').not('[src*="'+ postfix +'."]').each(function() { var img = $(this); var src = img.attr('src'); var src_on = src.substr(0, src.lastIndexOf('.')) + postfix + src.substring(src.lastIndexOf('.')); $('<img>').attr('src', src_on); img.hover(function() { img.attr('src', src_on); }, function() { img.attr('src', src); }); }); }); ★★★★★★★★★★★★★★★★★★★ 「*=」の意味は例えば、 a*=b と a=a*b は同義で、 「aかけるbをaに代入」 というような解釈でいます。 この考え方だと、上記コード3行目 [src*="'+ postfix +'."] の意味がよくわかりません。 srcと"'+ postfix +'."をかけてsrcに代入? そんなこと出来るのでしょうか。 よろしければご回答いただければと思います。 よろしくお願いします。

  • javascript if文

    javascript if文 まずソースコードなのですが var num; var sign; num = 20; (1)sign = num >= 0 ? '正' : '負'; console.log( num + "は" + sign ); (2)if(num >= 0){ console.log( num + "は" + sign ); } (1)と(2)は同じ意味なのですか?(1)のやり方はあまり見かけないのですが用途としてはどのような時に使うのですか? 馬鹿な質問でスミマセン。

  • このソースはJavaScriptですか?

    Webサイトの作成のためにJavascriptやJQueryについて勉強しようと思っており、いろんなサイトを調べてみたら、次のようなソースが書かれていることが多いです。 var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-746118-2']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); たぶんJavaScriptかJQueryだと思いますが、これは一体どのような命令文なのでしょうか? このソースを多くのサイトで使っているのならば、私も試してみたいと思っております。初心者ですが、宜しくお願い致します!!

  • JavaScriptの変数について

    JavaScriptのソースで解らないところがあり、困っています。 ソースは下記の様なものなのですが、エラーが出ていません。 解らない点は2点有ります。 1. jにfalseを代入している箇所なのですが、セミコロンがないのは何故なのでしょうか? Chromeのデベロッパツール, FireFoxのFirebugで確かめてみたのですが、エラーとなっておらず、alertでfalseと表示されている状態です。 「j = !1」の箇所を即時関数の外に出すと、エラーとなります。 普通変数に代入する式の末尾はセミコロンをつけると思うのですが、 何故なのでしょうか? 2.また、jはvar j等のように変数の宣言をせずに使えているようなのですが、 普通即時関数内で宣言した変数のスコープは関数の外では使えないので、エラーとなると思うのですが、宣言せずに代入に使った変数はグローバル変数と解釈されるのでしょうか? どなたかお答え下さい。 --------------------------------- <script> (function() { j = !1 })(); alert(j); </script>