为什么这行Javascript代码出错?

时间:2014-07-07 02:20:26

标签: javascript

这行代码中有一段代码

 Boo.prototype.initone (a) { <-- Syntax error

我想用一个属性this.bar创建一个Boo的简单对象,为什么这会给我一个错误?下面列出了错误,这是一个未被捕获的语法错误,但我没有看到它。

我知道不应该发布语法错误,但我只是没有看到下面这段代码的完全错误。

错误代码:

 Boo.prototype.initone (a) {
     this.bar = a;
     return this;
 }

错误

 Uncaught SyntaxError: Unexpected token { 

代码:

<script>
function Test1() {
}

function Boo () {
    this.bar = 'Test This Method';
}

Boo.prototype.initone (a) {
    this.bar = a;
    return this;
}

Boo.prototype.inittwo (b) {
    this.bar = 'something to do with ' + b;
    return this;
}

var a = new Boo().initone('constructor 1');
var b = new Boo().inittwo('constructor 2');
</script>

代码:此代码仍会显示未捕获的异常。如果我把这个返回,那么initone上不会出现错误,但inittwo似乎没问题。

Boo.prototype.initone = function (a) {
    this.bar = a;
    return this;
}

Boo.prototype.inittwo = function (b) {
    this.bar = 'something to do with ' + b;
    return this;
}

2 个答案:

答案 0 :(得分:5)

您在此处收到语法错误,因为JavaScript并不知道您想要做什么。如果您要定义一项功能,则需要使用function关键字指定。

在这种情况下,需要写成:

Boo.prototype.initone = function(a) {
    this.bar = a;
    return this;
}

您还需要对inittwo方法进行更改。

答案 1 :(得分:3)

因为这不是你如何在JS中定义一个对象的函数:)

你必须使用等号:

Foo.prototype.initone = function(bar){
}

我认为您正在记住定义类似函数的语法:

function f() { }