category: JavaScript
DATE : 2006/09/04 (Mon)
DATE : 2006/09/04 (Mon)
次のようなクラスを作って文法チェッカにかけてみたところ、末尾に「;」がないと怒られてしまいました。
function Person(name) { this._name = name; } Person.prototype = { getName : function() { return this._name; } }
正しくは、次の通りです。
function Person(name) { this._name = name; } Person.prototype = { getName : function() { return this._name; } };
よく考えてみると、 prototype プロパティに設定する文全体
Person.prototype = { getName : function() { return this._name; } };
は、何かの宣言文ではなく、ただ単に Person オブジェクトの prototype プロパティに getName という関数を設定しているだけの式でしかありません。そのため、末尾のセミコロンがないと文法チェッカに怒られる――というわけです。
ちなみに、セミコロンのない場合でも、Firefox では動作します(ECMAScript には「自動セミコロン挿入規則」という仕様があって、セミコロンがない場合でも動作してくれます)が、IE では動作しませんでした。私はいつも Firefox を使って JavaScript のテストを実行しているので、見事にハマってしまいました。
参考ページ
PR
●この記事にコメントする
忍者ブログ [PR]