Safari 5.0.5のJavaScriptでプロパティ名やメソッド名にdoを使うとParse errorが出る
var Hoge = function() {};
Hoge.prototype = {
hoge: function() {
},
do: function() {
alert('do!');
}
};
var fuga = new Hoge;
fuga.do();
ていうコードをFirefoxで動かすと通るが、Windows版Safari 5.0.5で動かすと、「Syntax Error: Parse error」が出る。
doを、dodoとかに書き換えると、エラーはなくなる。
メソッド名じゃなくてプロパティ名としてならどうなのかーと思って、
var Hoge = function() {};
Hoge.prototype = {
hoge: function() {
alert(this.do);
},
do: 1
};
var fuga = new Hoge;
fuga.hoge();
とやると、やっぱりSafariだとだめ。
いっそのこと、
var Hoge = {};
Hoge.do = 1;
というのはどうだ、と思ったらこれすらだめ。
Safariだと、doって予約されているのかな?
(2011-11-02 23:31追記)
Mac版Safari 5.0.6と、Windows版Safari 5.1.1で試したら、問題がありませんでした。それを受けてタイトルを修正しました。
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/19018/53147784
この記事へのトラックバック一覧です: Safari 5.0.5のJavaScriptでプロパティ名やメソッド名にdoを使うとParse errorが出る:

![すぐ解決!DTPトラブル対策ブック―最強最後のOS9(+OSX)ガイド [単行本]](http://ec2.images-amazon.com/images/I/51895BQKEPL._SL500_AA208_.jpg)








