我正在读一本关于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行列出它们,我该怎么办?
答案 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
,参数为name
和age
。
var Person = function(name, age) {
this.name = name;
this.age = age;
};
更改它,您的代码有效。 See demo here