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
530
【JavaScript】クロージャを理解して正しく使う
TomPenguin
January 26, 2022
Tweet
Share
More Decks by TomPenguin
See All by TomPenguin
Domain Modelを共有していい感じにプロダクトを作る
tompenguin
0
330
【JavaScript】Strategy Patternっぽいのをちょい使いしてif分を駆逐する
tompenguin
0
210
Git ゼンゼン ムズカシクナイ
tompenguin
0
550
あきらめる Atomic Design
tompenguin
5
750
Other Decks in Programming
See All in Programming
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
0
830
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
5.9k
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.4k
Patterns of Patterns
denyspoltorak
0
1.3k
AI時代の認知負荷との向き合い方
optfit
0
130
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
0
140
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
190
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
120
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
0
210
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
260
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
170
Featured
See All Featured
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
150
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Building an army of robots
kneath
306
46k
The Cost Of JavaScript in 2023
addyosmani
55
9.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.8k
30 Presentation Tips
portentint
PRO
1
210
Being A Developer After 40
akosma
91
590k
Paper Plane (Part 1)
katiecoart
PRO
0
3.8k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
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 完全に理解したわ