Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
【JavaScript】クロージャを理解して正しく使う
Search
TomPenguin
January 26, 2022
Programming
0
520
【JavaScript】クロージャを理解して正しく使う
TomPenguin
January 26, 2022
Tweet
Share
More Decks by TomPenguin
See All by TomPenguin
Domain Modelを共有していい感じにプロダクトを作る
tompenguin
0
320
【JavaScript】Strategy Patternっぽいのをちょい使いしてif分を駆逐する
tompenguin
0
210
Git ゼンゼン ムズカシクナイ
tompenguin
0
550
あきらめる Atomic Design
tompenguin
5
730
Other Decks in Programming
See All in Programming
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
1
130
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
220
ペアプロ × 生成AI 現場での実践と課題について / generative-ai-in-pair-programming
codmoninc
0
230
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
0
390
既存デザインを変更せずにタップ領域を広げる方法
tahia910
1
260
初学者でも今すぐできる、Claude Codeの生産性を10倍上げるTips
s4yuba
2
880
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
120
Blazing Fast UI Development with Compose Hot Reload (droidcon New York 2025)
zsmb
1
270
git worktree × Claude Code × MCP ~生成AI時代の並列開発フロー~
hisuzuya
1
520
GraphRAGの仕組みまるわかり
tosuri13
8
510
Team operations that are not burdened by SRE
kazatohiei
1
290
WindowInsetsだってテストしたい
ryunen344
1
220
Featured
See All Featured
Become a Pro
speakerdeck
PRO
28
5.4k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
5
230
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Site-Speed That Sticks
csswizardry
10
670
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Rebuilding a faster, lazier Slack
samanthasiow
82
9.1k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Optimizing for Happiness
mojombo
379
70k
Embracing the Ebb and Flow
colly
86
4.7k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Transcript
クロージャ を理解して正しく使う JavaScript TomPenguin karabiner. inc 2022/01/26 完全に理解したわ
あなたは誰ですか? Vue.jsばっかりさわっているエンジニア。 仙台から福岡のシステム開発会社へフルリ モートで勤務。 デザインからやるWeb制作の仕事、個人で 小さく始めました。 TomPenguin tompenguin_ Work at
karabiner, inc
アジェンダ • クロージャとは • クロージャの何が嬉しいのか • いろいろなクロージャ • ダメなクロージャ
① クロージャとは What’s Closure
子関数が親関数の変数を参照する仕組みのことです。 ① クロージャとは ちょう大雑把に言うと https://developer.mozilla.org/ja/docs/Web/JavaScript/Closures
これだけだよ。今日はお疲れ様でした。
嘘だよ。 でも本当に クロージャってこれだけ
① クロージャとは 親関数
① クロージャとは 子関数
① クロージャとは 親関数の変数
① クロージャとは 親関数の変数の参照
① クロージャとは 子関数を返却
① クロージャとは 親関数の変数の参照を保持
② クロージャの何が嬉しいのか What makes you happy?
② クロージャの何が嬉しいのか • 関数の再利用性が高まる • 引数がシンプルになる • テストが容易になる
② クロージャの何が嬉しいのか 関数の再利用性が高まる 同じ api client、option を使いまわせる
② クロージャの何が嬉しいのか 引数がシンプルになる path を渡すだけで良い
テストが容易になる someAPIClient にモック を差し込むことでリクエ スト結果をコントロール できる ② クロージャの何が嬉しいのか
③ いろいろなクロージャ Various Closures
「子関数を直接返す」 ③ いろいろなクロージャ
「親関数の引数を参照する」 ③ いろいろなクロージャ
「もっと短く」 ③ いろいろなクロージャ
「参照先がModuleスコープ」 ③ いろいろなクロージャ
④ ダメなクロージャ Bad pattern
「状態を持っている」 ④ ダメなクロージャ クロージャは参照を保持するので 状態を持つことができる。 しかし状態を持つと状態の変更の 追跡が困難になるので避ける。
子関数が親関数の変数を参照する仕組みのことです。 まとめ https://developer.mozilla.org/ja/docs/Web/JavaScript/Closures クロージャとは ちょう大雑把に言うと
クロージャ を理解して正しく使う JavaScript TomPenguin karabiner. inc 2022/01/26 完全に理解したわ