---
# System prepended metadata

title: Untitled
tags: [JSPrimer輪読会]

---

## 【第29回】JSPrimer輪読会

###### tags: `JSPrimer輪読会`

- [開催概要](https://hackmd.io/OsL28Q9fS7Wa2alu3gkoaw)
- [JSPrimer輪読会 ノートまとめ](https://hackmd.io/@NRLooQz8RrqbPmaSYWZceg/r1S4p-5Ds)

------

## 2023\-4\-20(木)

### 連絡事項や確認・相談
- 

### タイムキーパー
-  maimu

### 読んだところ
- Array.prototype.lengthをアクセッサプロパティで再現する の前まで
### 次回
- Array.prototype.lengthをアクセッサプロパティで再現する　から
### 自由に使う共有スペース

### 各自の疑問点や気づき、学んだこと
- まっきー
    - クラス構文と関数オブジェクトのルールが混同しがちなので、「関数オブジェクトだとどうだっただろう？」と比較して理解する必要がありそう
    - クロージャとクラス構文のちがい：クロージャの方がわかりやすく、クラス構文の方がメソッド共有する分メモリ効率がよい、は押さえておきたい

- dawa
    - クロージャーという書き方もあってクラス構文と比較すると、クラス構文では構文無内で定義したメソッドは、プロトタイプメソッド(クラスの各インスタンスから共有されるメソッド)なのでインスタンス間で共有されるという点でメモリ効率が良い(?)

- maimu
    - 関数は `()` をつけて呼び出せるけれど、クラスはエラーになる
        - クラスの場合は `new` を実行してオブジェクトを作成する
    - クラスのメソッドはプロパティのように書けない
        - NG: `hoge: () => {}`
        - OK: `hoge() {}`

- @fuwa
    - class構文で定義したクラスは関数として呼び出すことはできない。ただし関数でのクラス表現はOK。ごちゃごちゃになりそう
    - JSのコンストラクタはRubyのinitializeみたいな感じと雑なイメージで覚えました

- @umizaru
    - HackMD書くの面白いですねこれ
    -　　クラス、関数、メソッドそれぞれに命名規則があることを知れてよかった。
    -　　個人学習の範囲ではとりあえずクラスはアッパーキャメルケース（UpperCamel）、関数とメソッドはローワーキャメルケース（lowerCamer）で書こうと思う。
    -　　コンストラクタは任意のオブジェクトを返すようにすべきではない。クラスからはインスタンスが返ってくることが期待されるため。

- @AntiSatori 
    - クラスのメソッドはプロトタイプメソッドとして各インスタンス間で共有されるのでインスタンスを作る毎に新しくメソッドが作成されない。
クラス的なオブジェクトをクロージャーを利用して実装した場合はインスタンスの生成毎に新しくオブジェクトが作られるため、それぞれのインスタンス間でのメソッドの共有が行われない。
    - 静的メソッドだけの場合はクラスを使う必要は余りないので、基本的にクラスを使うと嬉しい場面は破壊的変更を行う必要のある場合だけかもしれない。
    - ちなみにReactのhooksやvueのcomposition apiはクロージャーで作られてます。

-　はるまき
    -　getterはプロパティの参照時、setterはプロパティの代入時に呼び出される。自分で書くときの使い所がまだよく分かっていない。

### 本日の振り返り(よかった点・次回に向けての改善点・今の気分などなんでもOK)
- まっきー
    - 最近集中してTypeScriptを勉強してて、その表現力の高さに少しずつ面白さを実感中
    - ブルーベリー本も勢いで買ったので、輪読会にも顔出してみたい
    - もちろん自作サービスでも取り入れたいと思っています

- maimu
    - fuwaさんの自作サービスで検索結果に対して、同じジャンルで曲のレコメンドがあると嬉しいなと個人的に思いました。
        - Twiceのホニャララを聴いている人は他のアーティストのこの曲もおすすめ的な
            - ありがとうございます！なるほど、レコメンドならSpotifyのAPIで実装できるかもです
    - 自作サービスがどんどんシンプルに実装ができることが判明して設計力のなさに泣けてきます😭
        - 余計な機能はないに越したことはないけど、技術的にやりたいみないな邪な気持ちが発生・・・
        
- @fuwa
    - 最近眼精疲労がやばくてモニターを見るのが辛いです。。
        - ブルーライトカット系なんだかんだ効く気がします・・・！（効かない説もありますが）
            - あ、意外と効くんですね！持っているので試してみます〜
            - 自分も使っています~ 車の運転とか伝票チェックとか重なるとやばいので日頃から使うようにしています。
    - JSとかTSばかりやっているのでRubyが恋しくなってきました

- はるまき
    - 輪読会中にあれこれなんだっけってなったときにBingAIが教えてくれて助かった。
    - fuwaさんのサービス、Spotify視聴とかyoutubeのMVとかすぐに再生できるといいかなと思いました！
        - ありがとうございます〜！ただAPIの提供元サイトでも、一部の楽曲ではそういったリンクが貼られているものがあるんですよね。。

- dawa
    - 今オブジェクト指向のボウリングをやっています。initializeとかたくさん出てくるので、RubyとJSで比較ができそうです。

- @AntiSatori 
    - 前回のグループコーチングで自分の体調の悪さとか目標とか話していたらkochiさんが興味を持ってもらって、今日はkochiさんと話の続きを沢山出来て面白かったです
    - ピアカウンセリングと言うらしい
    - http://www.chokoen.com/sien-7.html

- @umizaru
    - JSクラスのプラクティスがカオスってますが、処理の手順を日本語で書いて、課題を小さくして進めると良い感じだなぁと思ってます。
    - ChaｔGPTにプラクティスの要件をコピペしてコードを出力してすげーと思う反面、学習にならない以上にやっててなんだか面白くないなぁと思いました。

## 2023\-4\-21(金)

### 連絡事項や確認・相談
- 

### タイムキーパー
-  maimu

### 読んだところ
- 静的メソッドの前まで 
### 次回
- 静的メソッド　から
### 自由に使う共有スペース

### 各自の疑問点や気づき、学んだこと
- まっきー
    - フィールドを`=`使って初期化する方法のほうがシンプルに書ける気がしたが、`setter`を使えなくなるので注意したい
    - `#`使ったフィールドのプライベート化は`getter`でも呼び出せなくなるのはへぇーでした

- @fuwa
    - クラスフィールドではthiｓがそのクラスのインスタンスを参照して、初期値に任意の値を書くことができる
    - `#`を前につけるとPrivateクラスフィールドを定義できる

- maimu
    - クラスフィールドでもプロパティの初期化が可能
        - ただし、クラスフィールド→コンストラクタの順で実行されるため、クラスフィールドで初期化したプロパティにコンストラクタで値を入れると上書きされてしまう
    - ES2022前まではプライベートクラスは定義できなかった
        - TypeScriptで補えるということを知らなかったためなるほどとなりました！

- dawa
    - Privateクラスフィールドでは、途中から値が入る場合でもフィールドの宣言が必須。 Privateクラスフィールドを使うことで、クラスを利用する際はgetterとsetterを経由しないと#valueを参照できなくなりました。直接は参照できないが、getterとsetterを経由すればアクセスできる?

-
### 本日の振り返り(よかった点・次回に向けての改善点・今の気分などなんでもOK)
- まっきー
    - Reactにプラクティスが変わったのはうれしいけど、卒業までの期間は確実に延びた😭

- maimu
    - Hotwireを使ってモーダルの実装をしたらVue.jsの半分以下のコード量で実現できて感動・・・
        - 大規模なサービスには向かない気がするけど、自作サービスであまりフロントが得意じゃない人には意外に良いかもと思いました！

- dawa
    - ボウリングで更なる大きな変更が必要そうです。prettireの使い方を調べています。

- @fuwa
    - 本日未明に本棚の上からルーターとモデムが落下してそのままにしてあるのですが、やっぱりインターネットの調子が悪いです〜
    - うっかりバイト入れすぎて7連勤が生成されてしまったのでげっそりしてます

-