![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
関数内で作成した変数を別の関数で利用したいのですが、console.log(obj.tmp);だけがundefinedになってしまいます。なぜこのようになるのでしょうか。わかる方ご指摘お願い致します。
function input () {
var a = 1;
var tmp = [
{
name: '名前',
address: '住所',
coordinate: 123456789,
discription: "説明"
}
];
console.log(a);
console.log(tmp);
return {a};
return {tmp};
}
function output () {
var obj = input();
console.log(obj.a);
console.log(obj.tmp);
}
output();
No.1ベストアンサー
- 回答日時:
return {a}; でinput()から抜けてしまうので、その後のreturn {tmp};は実行されていないためです。
以下のようにすれば両方取得できます。
function input () {
var a = 1;
var tmp = [
{
name: '名前',
address: '住所',
coordinate: 123456789,
discription: "説明"
}
];
console.log(a);
console.log(tmp);
return {'a':a, 'tmp':tmp};
}
function output () {
var obj = input();
console.log(obj['a']);
console.log(obj['tmp']);
}
output();
No.2
- 回答日時:
こんにちは
原因と対策はすでにNo1様がご指摘の通りですが・・・
>return {a};
>return {tmp};
通常 { } はオブジェクトリテラルの表記に用いられます。
オブジェクトは
{ key1:value1, key2:value2 }
の形式で表されますが、ご提示のスクリプトではそのような表記になっていませんので、一般的な記述法とは言えません。
ブラウザが単なる中括弧として解釈する場合は、
return a;
return tmp;
と同じと見做されるか、(二行目は実行されませんが)
あるいは、
{ a:a }
の短縮形として理解されるものと思われます。
(ブラウザに依存します)
https://developer.mozilla.org/ja/docs/Web/JavaSc …
ご提示の関数の場合に限って言えば、常にaの値は1で返されるので、returnする必要性を感じませんけれど。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
idを使わずにonclickで自身の要...
-
関数でy=g(x)のgとは何の略です...
-
要素名がスペースを含む場合のj...
-
getElementByIdを使用したグロ...
-
jqueryuiのdialog
-
XMLHttpRequestオブジェクトが...
-
処理前の「お待ちください」
-
<HEAD>内と<HEAD>後のfunction...
-
jqueryのグローバル変数とロー...
-
(function(){})()の意味
-
functionから別のfunctionを実...
-
食材の期限を管理するためにGAS...
-
ActiveXobjectが作成できない
-
javascriptで入力フォームに日...
-
同じIDで定義した要素の配列を...
-
ASP.NETのコントロールの値をJa...
-
JavaScriptとHTMLの課題です
-
jspからjavascriptの変数引継ぎ
-
この配列は何?
-
javascriptで行を抽出したいです。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数でy=g(x)のgとは何の略です...
-
idを使わずにonclickで自身の要...
-
functionから別のfunctionを実...
-
jQueryの :not() .not() が有効...
-
jslintのエラーについて質問
-
クリックすると上に開くアコー...
-
関数名をテキストから読み込む...
-
getElementByIdを使用したグロ...
-
XMLHttpRequestでキャッシュを...
-
jQueryの"return false"の役割...
-
JAVAスクリプトで指定時間以降...
-
JavaScriptの日付の比較
-
jQueryでzipを解凍読み込みする...
-
コードをスマートにさせたい。
-
XMLHttpRequestオブジェクトが...
-
ページ内に複数表がある場合のT...
-
要素名がスペースを含む場合のj...
-
(function(){})()の意味
-
javascriptのreplaceについて
-
jqueryuiのdialog
おすすめ情報