书中的例子出错 - “意外的令牌{”

时间:2013-05-17 13:31:21

标签: javascript

我正在读一本关于JavaScript的书(最近开始学习)。在运行书中的一个示例时,我收到错误。我在Ubuntu上使用Chromium浏览器,14.0.835.202。

由于我是新手,我无法理解为什么会有错误。提前谢谢。

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行列出它们,我该怎么办?

2 个答案:

答案 0 :(得分:5)

您在这里错过了=(很可能也是function):

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

同样稍后您的函数定义中缺少一些括号,例如:

method ("getName", function()
    {
        return this.name;
    }).

答案 1 :(得分:1)

function
    {

但是

function ()
    {

你声明你的功能的sintax是错误的。 ()关键字后面的(par1, par2, parEtc)(或function}是强制性的。

此外,var Person的声明无效。 sintax是var varName = expression。您错过了=。此外,您的expression可能是function,参数为nameage

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

更改它,您的代码有效。 See demo here