在一行代码中自定义构造函数

时间:2013-12-20 21:30:05

标签: javascript constructor custom-controls

我可以请求帮助吗?我正在做Codeacademy,我彻底陷入困境。我尽我所能遵循指示,但如果有任何可以帮助解决我的问题,我将非常感激。

说明 请注意,如果没有构造函数,我们需要使用3行代码来制作harry_potter,这是一个代表Harry Potter第1册的对象。

然后在第7行中,我们为Book对象引入了一个构造函数,我们将页面和作者属性作为参数传递。

使用这个构造函数制作the_hobbit,一本由“J.R.R. Tolkien”创作的320页的书。请注意,使用构造函数只能在一行而不是三行中执行此操作!

// 3 lines required to make harry_potter
var harry_potter = new Object();
harry_potter.pages = 350;
harry_potter.author = "J.K. Rowling";

// A custom constructor for book
function Book (pages, author) {
    this.pages = pages;
    this.author = author;
}

// Use our new constructor to make the_hobbit in one line
var the_hobbit = new Book ("J.R.R. Tokien", 320);

// That last line of code is my own, and when I submit the code I receive this          error/warning:

//Oops, try again. Make sure that the_hobbit's author is J.R.R. Tolkien by passing it     as the first argument to the Book constructor.

这是提交代码时的“输出”:

“J.K。罗琳”

2 个答案:

答案 0 :(得分:1)

你太近了!你刚刚切换了参数。

你想要

var the_hobbit = new Book (320, "J.R.R. Tokien");

因为函数指定了Book(pages, author)。你一直在做Book(author, pages)

你的基本人物。

答案 1 :(得分:1)

var the_hobbit = new Book ("J.R.R. Tokien", 320);
Tolkien,不是Tokien。 :)

var the_hobbit = new Book ("J.R.R. Tolkien", 320);

也许这个拼写错误在您的实际代码中?