- ECMAScript デス 4
765 :デフォルトの名無しさん[sage]:2015/07/25(土) 22:40:43.14 ID:F8EjZDFb - >>761
問題がget等のメソッド使うのが野暮ということなら 今話してるmap[val]をval@mapと表せられるのがRelationships それに(this)bind演算子を合体させたのがAbstractReferences https://github.com/zenparsing/es-abstract-refs これであればプライベートの変数pがthis.pの代わりにthis::pで表される こういうのを[]の拡張でスマートに行うのは難しい 何故ならthis[p]はthisが主体であるが、this側が情報と制御を握っているという構造は 本当はプライベートがない上でプライベートを再現するのには向いていないからだ その点this::pでは、p側にthisが渡されるためにとても自然でクリーンに実現できる pがそのクラスのpプロパティのキーになるということも、pをprivate symbolかのように見ることが出来てJS的に自然に受け入れられる ではp自体はどのように処理を作ればいいかというと、実はこれはWeakMapそのままでいい あとはpを簡単に作れてそのクラスだけに結び付けられれば言うことがないので、 ここはせっかくとっておいたprivateキーワードを使えばJSのプライベート事情がとてもスマートに簡潔する
|
|