【覚え書き】JavaScriptのプライベートクラス機能

TypeScriptを使っていると、「ちゃんとprivateとかreadonlyとか使って制約かけないとな〜」と認識し直すタイミングが定期的に来るんですが、 そんな折にJavaScript側で実現できるプライベートクラス機能なるものがあることを知りました。 プライベートクラス機能 - JavaScript | MDN クラスのフィールドの先頭にハッシュ(#)をつけることで、プライベートなインスタンスフィールドを生成することができます。 あくまでコンパイル時にエラーの判定を行うTypeScriptと異なり、JavaScript自身の機能なのでランタイム時に判定&エラーを返してくれます。 継承を使う場合は、privateと同じく子クラスからは参照不可になりますが、 子クラス側で同じ名前のプライベートインスタンスフィールドを定義することはできます。 存在を知ってパッと概要を追って、良さそうと思ったけど世の反応(?)はどんな感じなんでしょうか。 (ちなみに、インスタンス生成時に少し遅くなるらしい、と言う旨の去年の記事はお見かけしました: JavaScriptでプライベートを使うと遅くなる話)

<span title='2023-06-20 23:05:31 +0900 +0900'>6月 20, 2023</span>

Lodashの概要と関数まとめ

lodashとは The Lodash library exported as a UMD module. (中略) …Lodash makes JavaScript easier by taking the hassle out of working with arrays, numbers, objects, strings, etc. 配列、数値、オブジェクト、文字列など、値を扱う際に便利な関数を多く提供しているJavaspriptのライブラリです。 _.getや_.eachなどがそれ。 公式ドキュメントがすごくわかりやすくていい感じです。 lodash - github 公式ドキュメント 使い方 インポート import _ from 'lodash'; 関数 _.get() _.get(object, path, [defaultValue]) objectのpathの値を取得する。値を解決できなかった場合、defaultValueを返す。 _.has() _.has(object, path) objectのpathの値が存在するかを調べる。値自体は返さない。 _.set() _.set(object, path, value) objectのpathにvalueの値をセットする。 pathが定義されていない場合は新しく作られる。 インデックスのプロパティがない場合は配列が作成され、それ以外のプロパティがない場合はオブジェクトが作成される。(?) _.each() -> forEach() _.forEach(collection, [iteratee=_.identity]) collectionの要素を反復し、各要素に対してiterateeを実行。 iterateeは3つの引数(value, index|key, collection)で呼び出される。 ※iteratee関数は明示的にfalseを返すことで反復を終わらせることができる _.flatten() _.flatten(array) arrayを一段分フラットにする。非破壊的メソッド。...

<span title='2021-07-17 11:11:15 +0900 +0900'>7月 17, 2021</span>