1

私は JavaScript に関する本を読んでいました (最近学び始めました)。本の例の 1 つを実行すると、エラーが発生します。Ubuntu 14.0.835.202 で Chromium ブラウザーを使用しています。

私は初心者なので、なぜエラーが発生するのか理解できません。前もって感謝します。

Function.prototype.method = function (name, fn)
{
    this.prototype[name] = fn;
    return this;
};


var Person
{
    this.name = name;
    this.age = age;
};


Person.
    method ("getName", function
    { // error here - "Uncaught SyntaxError: Unexpected token {"
        return this.name;
    }).
    method ("getAge", function
    {
        return this.age;
    });


var alice = new Person ("Alice", 93);
var bill = new Person ("Bill", 30);

Person.
    method ("getGreeting", function
    {
        return "Hi" + this.getName() + "!";
    });

alert (alice.getGreeting());

編集:

解決策は、私が尋ねたかった別の質問を私に与えました. オブジェクト宣言の場合:

var Object = function (...) // line 1
{
    // code here
};

変数の数が多すぎて 1 行目にリストしたくない場合は、どうすればよいですか?

4

2 に答える 2

5

=ここに a (そしておそらく aも)がありませんfunction:

var Person = function( name, age ){
    this.name = name;
    this.age = age;
};

同様に、後で関数定義にいくつかの括弧がありません。たとえば、次のようになります。

method ("getName", function()
    {
        return this.name;
    }).
于 2013-05-17T13:32:34.797 に答える
1

いいえ

function
    {

しかし

function ()
    {

関数を宣言している構文が間違っています。キーワードの後の()(または)は必須です。(par1, par2, parEtc)function

また、 の宣言var Personは無効です。シンタックスはvar varName = expression. がありません=。また、パラメータおよびを持つexpression可能性があります。functionnameage

var Person = function(name, age) {
    this.name = name;
    this.age = age;
};

それを変更すると、コードが機能します。ここでデモを参照してください

于 2013-05-17T13:33:31.077 に答える