ホームページ  >  記事  >  ウェブフロントエンド  >  jsパラメータオブジェクトはオプションのパラメータとパラメータのデフォルト値を実装します

jsパラメータオブジェクトはオプションのパラメータとパラメータのデフォルト値を実装します

高洛峰
高洛峰オリジナル
2016-11-22 11:24:101124ブラウズ

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


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。