Home  >  Article  >  Web Front-end  >  js parameter object implements optional parameters and parameter default values

js parameter object implements optional parameters and parameter default values

高洛峰
高洛峰Original
2016-11-22 11:24:101124browse

js parameter object implements optional parameters and parameter default values ​​

The premise of omitting parameters is that the function can identify which parameter you want to pass in. The agreement
1. Omissible parameters are appended
2. After omitting parameters, they cannot be It creates ambiguity with other functions (js does not have this problem)

The program requires you to pass parameters in the order in which they are defined. If there is anything that is not passed on later, it will be omitted. If you want to omit the middle... Sorry, pass in null or undefined yourself.

For javascript, the parameter type can be identified by simple judgment to achieve the effect of omitting intermediate parameters, for example.

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

Here it is simply identified by type. For more complex situations, you can use regular expressions to identify domain, url, email, etc., but it is more troublesome to say, and the code logic is complex and not easy to write.

When there are many parameters and some of them can be omitted, it is recommended to use parameter objects.

ES5 implements optional parameter object

    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 implements optional parameter object - syntax sugar destructuring assignment

    function doSome({a,b=2,c}){
    console.log(a,b,c)
    }
    doSome({a:5,c:22})
    // 5 2 22


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn