私はしばらくの間グーグルで行ってきましたが、ES5でデフォルトパラメータを設定する多くの独創的な方法が見つかりました& ES6しかし、私はまだデフォルトを上書きする簡単な例を見ていませんJavaScriptのパラメータこの例を見てみましょう:JavaSciptのデフォルトパラメータをオーバーライドする方法
new Connection(host, port = 25575, password, timeout = 5000)
デフォルトのタイムアウトは結構ですが、ポート番号ではありません。二番目のパラメータがpassword
であると想定されるため、認証エラーで
myConnection = connFactory.getConnection(process.env.IP,
process.env.PORT,
process.env.PASSWORD)
このコード結果:この関数をコールすると、JavaScriptは常にpassword
パラメータとして二番目のパラメータを扱います。どのようにしてport
のデフォルトパラメータを無効にすることができますか?元の関数定義を変更しないでください。
「新しい接続(ホスト、ポート= 25575、パスワード、タイムアウト= 5000)」これはどのような構文ですか?あなたのコードのより完全な例を私たちに見せてもらえますか? 'getConnection'がどのように見えるかわからないので、どうすればそれを手伝うことができますか? – JLRishe
独自の関数で関数をラップすると、パラメータの順序を変更できます。 –
そうではありません。この[fiddle](https://jsfiddle.net/wd1oh8o7/)では、デフォルトのパラメータが正確に使用され、2番目のパラメータは 'port'として使用されます。だから私は問題が他のどこかにあると思います。問題を再現できる最小限の例を作成してください。 –