ホームページ >ウェブフロントエンド >jsチュートリアル >jsパラメータオブジェクトはオプションのパラメータとパラメータのデフォルト値を実装します
jsパラメータオブジェクトはオプションのパラメータとパラメータのデフォルト値を実装します
パラメータを省略する前提は、関数がどのパラメータを渡したいかを識別できることです。
1.省略可能なパラメータはパラメータを省略した後に追加されます
2.他の関数とあいまいさが生じます (js にはこの問題はありません)
プログラムでは、定義された順序でパラメーターを渡す必要があります。後々引き継がれないものがある場合は省略させていただきます。途中を省略したい場合は…申し訳ありませんが、null または undefine を自分で渡してください。
JavaScriptの場合、簡単な判断でパラメータの型を特定することができ、中間パラメータを省略するなどの効果が得られます。
var set = function(name, date, age) { if (typeof date === "number") { age = date; date = undefined; } // .... }
ここでは、単にタイプによって識別されます。より複雑な状況では、正規表現を使用してドメイン、URL、電子メールなどを識別できますが、言うのはさらに面倒で、コードのロジックは複雑で、記述するのは簡単ではありません。
パラメータの数が多く、一部省略できる場合は、パラメータオブジェクトを使用することをお勧めします。
ES5 はオプションのパラメーター オブジェクトを実装します
var CookieUtil = { set: function(args) { var name = args.name; var value = args.value; var expires = args.expires; var path = args.path; var domain = args.domain; var secure = args.secure; // ... } } CookieUtil.set({ name: "name", value: "Nicholas", path: "/books/projs/", domain: "www.wrox.com", expires: new Date("January 1, 2010") });
ES6 はオプションのパラメーター オブジェクトを実装します - 構文シュガー構造化代入
function doSome({a,b=2,c}){ console.log(a,b,c) } doSome({a:5,c:22}) // 5 2 22