忍者ブログ
[152] [151] [150] [149] [148] [146] [147] [145] [144] [143] [142]

DATE : 2017/08/18 (Fri)
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


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
●この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
●この記事へのトラックバック
この記事にトラックバックする:
忍者ブログ [PR]
ブログ内検索
最近の状況
リンク
カレンダー
07 2017/08 09
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
T/O
(11/05)
ブログ内検索
最近の状況
リンク
カレンダー
07 2017/08 09
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
T/O
(11/05)