Re: __proto__ が変わりゆく件について
さすがにちょっとツッコミを入れたい。
※ まだドラフトで確定ではないのでご注意ください。
http://nextdeveloper.hatenablog.com/entry/2013/12/15/191719
注釈があるとはいえ、今この時期にこのPDFは古いです。
現在のES6 Draft仕様のリビジョンは21です。rev2の仕様を引っ張り出してくるのはどうかと…。
大筋では特に言うことは無いのだが、以下の点に関してはツッコんでおきたい
- Enumerable: true はありえない(for-in で列挙されてしまうよ!?)
- UnderscoreProtoEnabled という内部プロパティは、消されている
ついでに、最近のドラフトでは、__proto__のデスクリプタは [[Enumerable]]: false, [[Configurable]]: true な Setter/Getter とされている。Setter/Getterなので [[Writable]]: true でもない。
ここから先は私見
さらに、ES5.1の Object.getPrototypeOf とともに、ES6 ではObject.setPrototypeOf も定義される。よって、__proto__ プロパティは要らない子である。
明日から、JavaScript コードの先頭に
delete Object.prototype.__proto__;
と書くことを心がけよう!
:wq