jsパラメータオブジェクト実装オプションパラメータとパラメータのデフォルト値
1413 ワード
js
パラメータを省略する前提は、関数があなたがどのパラメータを入力したいのかを識別することです.1.省略できるパラメータは後に置く2.パラメータを省略した後、他の関数と二義性を生成することはできません.(jsはこの問題は存在しません)
プログラムはパラメータの定義された順序でパラメータを伝達するように要求されます.
javascriptについては、中間パラメータを省略する効果を達成するために、パラメータタイプを簡単に判断して識別することができる.
パラメータが多く、部分が省略できる場合はパラメータオブジェクトの使用を推奨します.
ES 5オプションパラメータオブジェクトの実現
は、オプションパラメータとパラメータのデフォルト値を実現する.パラメータを省略する前提は、関数があなたがどのパラメータを入力したいのかを識別することです.1.省略できるパラメータは後に置く2.パラメータを省略した後、他の関数と二義性を生成することはできません.(jsはこの問題は存在しません)
プログラムはパラメータの定義された順序でパラメータを伝達するように要求されます.
が伝えられていない場合は省略されます.中間を省略するなら…すみません、null undefined
に自分で入ってきます.javascriptについては、中間パラメータを省略する効果を達成するために、パラメータタイプを簡単に判断して識別することができる.
var set = function(name, date, age) {
if (typeof date === "number") {
age = date;
date = undefined;
}
// ....
}
ここはシンプルなタイプで認識されています.もっと複雑な場合は正規表現を使ってdomain、url、emailなどを識別できますが、話をするとややこしくなります.コードロジックも複雑で、書きにくいです.パラメータが多く、部分が省略できる場合はパラメータオブジェクトの使用を推奨します.
ES 5オプションパラメータオブジェクトの実現
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")
});
ES 6は、任意のパラメータオブジェクトを実現する.構文糖
. function doSome({a,b=2,c}){
console.log(a,b,c)
}
doSome({a:5,c:22})
// 5 2 22