undefined の上書き問題に対する打開案

ECMAScript 5 ではグローバル変数 undefined を書き換えることは出来ませんが、ローカル変数 undefined を宣言することは許されています。 「ではどうやって解決するのでしょうか?」というお話。
2
小倉唯 @Constellation

JSはdynamicなのが好きなので, freezeとかあまりしたくないかも. ただ, 大規模開発とかだとそういうわけにもいかないのかもなあ…

2011-10-01 22:35:10
think49 @think49

@Constellation そうですよね。結局、「どこまで自分の管理下におけるか」が争点になっているような気がします。「厳格であるべし」という立場の人は「自分一人で管理できる範囲はそれほど大きくない」って思ってるんじゃないかなー、と。

2011-10-01 22:41:18
think49 @think49

@think49 「自分でコードを書き、部分的に他の人にお任せする→書いて貰ったコードを見て驚愕する」みたいな悪いパターンを想定してるのかなー。「コーディング規約で縛る」か「言語規約で縛る」かの違いでもありますが。

2011-10-01 22:43:26
think49 @think49

閃いた! 「コード制作者が Keywords を定義できればいいじゃない」

2011-10-01 22:45:05
小倉唯 @Constellation

@think49 ですよね! で, http://t.co/LFu5C8Ve とstatic analyzerでも作って(例えばundefinedをkeywordとみなすような)引っ掛ければいいと思ったのですー.

2011-10-01 22:48:46
think49 @think49

@Constellation あははははー。高度な内容であまりよくわかってませんが、Keywords を定義できる方向性は大賛成です!

2011-10-01 22:53:42
think49 @think49

@think49 Object.prototype を拡張できて、Object.defineProperty でプロパティ属性を変更できて、ES6 では定数を定義出来る予定(const)なんだから、Keywords ぐらい定義できてもいいはずです。

2011-10-01 22:54:12
think49 @think49

@think49 ゆるい部分をきつく書き換えられる機能を持たせるなら、それはとても #ECMAScript らしいなって。

2011-10-01 22:59:08