![](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で質問しましょう!
似たような質問が見つかりました
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript addEventListener()でリスナー関数に名前を付ける構文を教えてください 1 2023/07/01 17:31
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- Visual Basic(VBA) VBA GetAttrについて教えてください 2 2022/12/22 15:25
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
functionから別のfunctionを実...
-
JAVAスクリプトで指定時間以降...
-
関数でy=g(x)のgとは何の略です...
-
シューティングゲームの作り方
-
idを使わずにonclickで自身の要...
-
jQueryの"return false"の役割...
-
クリックすると上に開くアコー...
-
関数の中の値を取り出したい
-
マウスをのせてながら、2秒後に...
-
同じIDで定義した要素の配列を...
-
<a>タグのテキストを取得
-
C#OpenCv V4にのエラーに関する...
-
GASでundefinedエラーが出ます
-
C#テキストボックスの文字を配...
-
window.openでタイトル名の指定
-
ActiveXobjectが作成できない
-
クリッカブルマップのリンク部...
-
undefinedを表示させない方法は...
-
Vb.netのグローバル変数の宣言...
-
googleスプレッドシートのApps ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数でy=g(x)のgとは何の略です...
-
idを使わずにonclickで自身の要...
-
functionから別のfunctionを実...
-
jslintのエラーについて質問
-
要素名がスペースを含む場合のj...
-
javascript(jQuery)でセル内...
-
ajax反映後のjqueryが動かない
-
jQueryの :not() .not() が有効...
-
getElementByIdを使用したグロ...
-
コードをスマートにさせたい。
-
クリックすると上に開くアコー...
-
jQueryの"return false"の役割...
-
jQueryが読み込めない
-
個別では動く、javascriptのエラー
-
一つのアクションで関数を二つ...
-
jqueryの変数を関数の外に出す方法
-
R言語
-
jQuery|:not(:animated)
-
即時関数でプライベート変数的...
-
スムーズに動く アニメーション...
おすすめ情報