- ECMAScript デス 4
755 :デフォルトの名無しさん[sage]:2015/07/25(土) 18:51:38.87 ID:qGUo5/ZS - まあでもMapがその仕様なら分割代入の拡張だって必要なかったっと言っても、
結局[]の拡張だって、ほぼMapのためだけのものとも言えるしね でも実際はMapを除いても分割代入の拡張は便利なものであるだろうし、 []の拡張だってそうだろうから、これらの議論とMapの仕様の是非の結びつきはかなり弱いと思うし、 どちらのMap仕様が絶対良いと言えるようなものではないと思う
|
- ECMAScript デス 4
756 :デフォルトの名無しさん[sage]:2015/07/25(土) 19:01:12.92 ID:qGUo5/ZS - instanceofの前例から見るに、高レベルな演算子のオーバーロードを
シンボルプロパティによるハックでやっていくっていうのは今後の基本方針だろう でも、==や<=のような低レベルな演算子はもっと限定的で低レベルな記述で オーバーロードするというのが今のところの雰囲気 そこで[]はその中間に当たるからなんとも微妙なんだよね まあ1つだけ言えることは、これはES6を入れる際に一緒に持ってくるには 大きすぎる問題だったけどMapは欲しかったから、今のMapの仕様になったのは妥当だと思う 別に[]の拡張が入ったからといっても今のMapがダメダメになるわけでもないし、 AbstractRefや分割代入の拡張という、筋の良い案でいくらでも諸問題に対するフォローは効く
|
- ECMAScript デス 4
759 :デフォルトの名無しさん[sage]:2015/07/25(土) 20:59:45.45 ID:qGUo5/ZS - >>757
大事なのは「The New Semantics of [ ]」のところから その記法はES6で有効 だが[]:はちょっとナンセンスだと思う []:→[undefined]:→"undefined":にも見える やはりシンボルでするしかないだろう >>758 全オブジェクトをMapにすると言っても過去の互換性を守るにはシンボルの追加のように オブジェクトはオブジェクトのままで、扱い方を追加して解決するしかない 結局シンボルでフックしてWeakMapでゴニョゴニョやる以外にない それなら既存のものを変革させなくともAbstractRefのように専用のものを作ったほうがいいのではないか? []の拡張と比べてAbstractRefの筋の良い所は、元の仕様の1つの名前がRelationships http://wiki.ecmascript.org/doku.php?id=strawman:relationships だったことからも分かる通り、2つの物の関係についての扱いを表わせられること。 どうしても[]だとオブジェクト指向のしがらみから逃れられず、 オブジェクトと、オブジェクトに送るメッセージという結構偏った関係になるが、 AbstractRefだとそれよりは対等で、気分的にもより汎用的で自由な使い方ができる記法となっている
|