1

我正在读一本关于 JavaScript 的书(最近开始学习)。在运行书中的一个示例时,我收到一个错误。我在 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

您在这里缺少一个=(并且很可能也是一个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 回答