OO Javascript .prototype

时间:2012-12-11 09:08:48

标签: javascript

function Engineer (name, projs, mach) {
    this.base = WorkerBee;
    this.base(name, "engineering", projs);
    this.machine = mach || "";
}
Engineer.prototype = new WorkerBee;

var jane = new Engineer("Doe, Jane", ["navigator", "javascript"], "belau");

这是来自Mozilla示例页面。为什么新的WorkerBee没有括号? 如果WorkerBee构造函数有参数,我们需要将它们传递给?

Engineer.prototype = new WorkerBee(BaseClassConstructorArgument1,2...)

我有这个问题: JS提示:缺少'()'调用构造函数。

所以我现在想知道清洁解决方案的样子。

1 个答案:

答案 0 :(得分:3)

使用new关键字调用构造函数时,括号是可选的,尽管有些短语会警告您。但是使用new WorkerBee代替new WorkerBee()

是完全可以的

如果你想传递参数,你自然需要括号。这就是为什么有些人认为总是最好使用paratheses来保持一致性(通常是写lint规则的人)。

但选择完全取决于你作为程序员。