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
Ruby と JavaScript の違い( Function 編)
Search
t0yohei
June 28, 2019
Programming
1
310
Ruby と JavaScript の違い( Function 編)
サンプルコートはこちらに記載しています。
https://github.com/t0yohei/wejs33
t0yohei
June 28, 2019
Tweet
Share
More Decks by t0yohei
See All by t0yohei
Vue の Input における State は親で持つべきか子で持つべきか
t0yohei
0
31
Vue.js を使って Grid System を実装した話
t0yohei
2
7.1k
負債が溜まったレガシーフロントエンド画面を Vue.js でリプレイスした話
t0yohei
0
2k
プログラミング入門に失敗した話
t0yohei
0
180
【ITエンジニアが怪我で労災!?】 仕事中に足の小指が骨折したら起きること
t0yohei
0
380
Protocol Buffers で Web APIのスキーマ駆動開発がしたい
t0yohei
0
180
副業のノウハウ
t0yohei
0
190
ちょっとしたRubyの話
t0yohei
1
480
自作キーボード入門してみた
t0yohei
0
140
Other Decks in Programming
See All in Programming
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
270
git worktree × Claude Code × MCP ~生成AI時代の並列開発フロー~
hisuzuya
1
580
GPUを計算資源として使おう!
primenumber
1
120
dbt民主化とLLMによる開発ブースト ~ AI Readyな分析サイクルを目指して ~
yoshyum
3
1k
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
650
iOS 26にアップデートすると実機でのHot Reloadができない?
umigishiaoi
0
130
Goで作る、開発・CI環境
sin392
0
240
すべてのコンテキストを、 ユーザー価値に変える
applism118
3
1.3k
Rails Frontend Evolution: It Was a Setup All Along
skryukov
0
160
脱Riverpod?fqueryで考える、TanStack Queryライクなアーキテクチャの可能性
ostk0069
0
170
Systèmes distribués, pour le meilleur et pour le pire - BreizhCamp 2025 - Conférence
slecache
0
120
新メンバーも今日から大活躍!SREが支えるスケールし続ける組織のオンボーディング
honmarkhunt
5
7.6k
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Documentation Writing (for coders)
carmenintech
72
4.9k
Facilitating Awesome Meetings
lara
54
6.4k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Site-Speed That Sticks
csswizardry
10
690
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Transcript
JavaScript と Ruby の違い (Function 編) We Are JavaScripters! @33rd【初心者歓迎・LT会】
@t0yohei
自己紹介 @t0yohei • Rails エンジニア • 10ヶ月前に転職 • JS 歴は約10ヶ月
• 最近は Rails + Vue.js
We Are JavaScripters! 初参加
今日のテーマ
JavaScript と Ruby の違い (Function 編)
Function に馴染みがなかったので 色々調べて見た
そもそも Function (関数) って何?
Function (関数)とは(IT用語辞典) 関数とは、コンピュータプログラム上で定義されるサブルーチンの 一種で、数学の関数のように与えられた値(引数)を元に何らかの 計算や処理を行い、結果を呼び出し元に返すもののこと。
None
JavaScript における Function (関数) を調べてみた 正方形の計算関数(MDNのドキュメントから) https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Functions#Function_declarations
もう一度関数の説明を見てみると
関数とは(IT用語辞典) 関数とは、コンピュータプログラム上で定義されるサブルーチンの 一種で、数学の関数のように与えられた値(引数)を元に何らかの 計算や処理を行い、結果を呼び出し元に返すもののこと。
JavaScript における Function (関数) を調べてみた 正方形の計算関数(MDNのドキュメントから) https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Functions#Function_declarations
何となくわかったような...
そういえば関数 (Function) と メソッド (Method) の違いって?
メソッドとは(JavaScript | MDN) メソッドとはあるオブジェクトに結びつけられた関数 のことです。
None
実際にどういうものか調べて見た
JavaScript における Method (メソッド) 1
JavaScript における Method (メソッド) 2
JavaScript における Method (メソッド) 3
確かに、オブジェクトに 紐づけられた関数だった
まとめると
• Function (関数) ◦ 与えられた値(引数)を元に何らかの計算や処理を行い、 結果を呼び出し元に返すもの • メソッド ◦ あるオブジェクトに結びつけられた関数
ふむふむ
Function 完全に理解した!!
そういえば
Ruby だと Function って どうなってるんだろう?
ここから Ruby の話
Ruby では Function って単語に ほとんど出会わない
一旦先にメソッドを見て行ってみる
メソッドとは(JavaScript | MDN) メソッドとはあるオブジェクトに結びつけられた関数 のことです。
とりあえずオブジェクトを作ろう
Ruby では JS の ような オブジェクト生成ができない
let object = {}; とかできない
どうするのか
一般的にはクラスから (インスタンス)オブジェクトを生成する
こんな感じ
メソッドは、クラス内で 定義しておくする
Ruby における method (メソッド)
余談: ちなみに同じことをJSで書くと(ES6)
なるほど、メソッドはわかった
じゃあ Ruby で Function ってどうやんの?
A: 書けない
None
なぜか
Ruby (Wikipedia) Ruby においては整数や文字列なども含めデータ型はすべてが オブジェクトであり、純粋なオブジェクト指向言語といえる。
Ruby の世界ではすべてがオブジェクト
そのためすべてがメソッドになる
まじかよ
実際に動かしてみると確かに全てがオブジェクトになってる
Ruby の世界に関数は存在しない
そのため、 JS でできることが Ruby では簡 単にはできないことがある
変数に関数を代入
JSで言うこれ
Ruby で書こうとすると sample_function の返り 値が入ってる
なぜそうなるのか sample_function の実行結果が入ってる sample_function の実行結果が入ってる ruby では、メソッドの呼び出しで括弧を省略できる
ただ、変数にメソッドを 代入できないこともない
こう書く
なにこのメタプログラミング感
None
メタプログラミングがしたかったら Ruby を書こう
最後に
個人的に JS と Ruby で手触りが違うなと 思ったところを話してみた
Ruby は クラスがわかれば理解が進むけ ど、JSの場合は何なんだろう??
参考 • Procを制する者がRubyを制す(嘘) • Re: Rubyの関数とメソッドの違いってなんだろ! • JSのクラスについて • ES6はクラスベース?プロトタイプベース?
• Javascriptでオブジェクト指向するときに覚えておくべきこと • 最強オブジェクト指向言語 JavaScript 再入門!
ありがとうございました!!