【Amazon】人気の商品が日替わりで登場!
毎日お得なタイムセール!商品をみる

【JavaScript】関数内の変数を関数外で使う方法

JavaScriptには関数スコープと呼ばれる、関数内で宣言された変数はその関数内でしか参照することができません。よって、普段通りに関数内の変数を外で使用してもエラーが発生しています。

本記事では、本来であれば参照することのできない関数内の変数を使う方法について解説しています。

JavaScriptの学習におすすめ書籍
1冊ですべて身につくJavaScript入門講座
総合評価
( 5 )
メリット
  • 誰でも分かるように嚙み砕いて説明してくれる
  • アニメーションの知識が深く学べる
  • 1つのWebサイトを作りながら学べる
先輩くん

Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!

後輩ちゃん

初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

全プログラマー必見!
変数名/関数名にもう悩まない!
リーダブルコード
総合評価
( 5 )
メリット
  • 美しいコードが書けるが自然と書けるようになる
  • 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次

名前付き関数の場合

まず始めに、名前付き関数内で宣言された変数を使いたい場合の記述方法は以下の通りです。

function nameFn() {
  let firstName = "Taro";
  let lastName = "Yamada";
  return {
    firstName,
    lastName,
  };
}
console.log(nameFn().firstName); // -> Taro
console.log(nameFn().lastName); // -> Yamada

return内に関数外で使用したい変数を追加します。オブジェクト形式で記述しプロパティ名とクラス名が同じ場合、一つにまとめる省略記法を使うことができます。

関数外で使用する際は「関数名().プロパティ名」で参照することができます。

無名関数の場合

続いて、無名関数内で宣言された変数を使いたい場合の記述方法は以下の通りです。

const nameInfo = function () {
  let firstName = "Taro";
  let lastName = "Yamada";
  return {
    firstName,
    lastName,
  };
};
console.log(nameInfo().firstName); // -> Taro
console.log(nameInfo().lastName); // -> Yamada

名前付き関数の場合とほとんど同じですが、関数外で使用する際は「変数名().プロパティ名」で参照することができます。

まとめ

関数内の変数を関数外で使用する機会は多くありませんが、いざという時に役に立ちますので覚えておきましょう。

下記の記事で即時関数内で宣言された変数を関数外で使用する方法について解説しているので、興味のある方はご参考ください。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村 FC2 Blog Ranking

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次