0
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 のサンプル ページからのものです。new new WorkerBee に括弧がないのはなぜですか? また、WorkerBee コンストラクターに引数がある場合、この行で引数を渡す必要がありますか?

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

この問題がありました: JS ヒント: コンストラクターを呼び出す '()' がありません。

だから私は今、きれいな解決策がどのように見えるか疑問に思っています。

4

1 に答える 1

3

キーワードを使用してコンストラクターを呼び出す場合、括弧はオプションですがnew、一部のリンターは警告します。new WorkerBeeしかし、代わりに使用してもまったく問題ありませんnew WorkerBee()

引数を渡したい場合は、当然括弧が必要です。そのため、一貫性のために常にパラテーゼを使用するのが最善であると主張する人もいます (多くの場合、lint ルールを作成するのと同じ人です)。

しかし、その選択は完全にプログラマーであるあなた次第です。

于 2012-12-11T09:14:57.263 に答える