これは一種のばかげた例ですが、なぜこのコードでバーが定義されていないというエラーが発生するのでしょうか。javascriptは、barが「this」オブジェクトのプロパティであるかどうかを確認しません。これを追加すると問題が解決することはわかっていますが、これは私を失望させる傾向があります。たとえば、他のプログラミング言語(C#)では、これは通常冗長です。なぜ、以下のコードに追加する必要があるのでしょうか。
var myObject = {
foo : function(){
alert(bar);
},
bar : "hello world"
};
myObject.foo();