首頁  >  文章  >  web前端  >  js參數物件實作可選參數和參數預設值

js參數物件實作可選參數和參數預設值

高洛峰
高洛峰原創
2016-11-22 11:24:101122瀏覽

js參數物件實作可選參數和參數預設值

省略參數的前提是函數能辨識你到底想傳入的是哪一個參數,約定
1.可省略的參數後置
2.省略參數後不能與其它函數產生二義性(js不存在這個問題)

程式要求你按參數定義的順序傳遞參數進去。如果後面有沒傳的,就省略了。如果要省略中間的…對不起,自己傳入 null 或 undefined。

對於 javascript 來說,可以對參數類型進行簡單的判斷來進行識別,以達到省略中間參數的效果,例如。

    var set = function(name, date, age) {
    if (typeof date === "number") {
        age = date;
        date = undefined;
    }
    // ....
}

這裡是簡單地透過類型來辨識的。更複雜的情況可以使用正規表示式來識別 domain, url, email 等,不過說起來就比較麻煩了,而且程式碼邏輯複雜,也不易寫。

參數較多,部分可以省略的情況,建議使用參數物件。

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