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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
TomPenguin
January 26, 2022
Programming
550
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【JavaScript】クロージャを理解して正しく使う
TomPenguin
January 26, 2022
More Decks by TomPenguin
See All by TomPenguin
Domain Modelを共有していい感じにプロダクトを作る
tompenguin
0
370
【JavaScript】Strategy Patternっぽいのをちょい使いしてif分を駆逐する
tompenguin
0
220
Git ゼンゼン ムズカシクナイ
tompenguin
0
570
あきらめる Atomic Design
tompenguin
5
770
Other Decks in Programming
See All in Programming
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
140
不幸な GC
chencmd
0
870
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
170
「AI時代、配布するPythonコードをどう守るか: 難読化の実験と判断軸」 #PyconJP2026
pkshadeck
PRO
2
150
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
560
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
4
1.7k
MIZARU@SPAJAM2026 第二回予選
1901drama
0
100
新卒PdEのリアル
ryu1013
1
360
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
7
2.3k
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
230
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
140
이 함수, 실패하면 어떻게 되나요? null부터 Rich Errors까지, Kotlin 에러 처리 15년
haeti2
0
130
Featured
See All Featured
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
230
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.9k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
300
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
660
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
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 完全に理解したわ