我有一个javascript函数,看起来像:
my_app.api.index = function(event, page = 1, sort = "last_name", desc = true, limit = 9999)

因此,这使用的是我们从ES6获得的出色的默认值。我想做的就是调用此函数,只传递一个值...或两个或三个,不管是多少,而不必传递所有值。

就像是:
my_app.api.index(sort: sortField);

理想的行为是,它将其他参数使用默认值,但将命名参数使用传递的值。这是什么语法?可能吗

最佳答案

您可以改用一个对象。 Object.assign()将覆盖您在参数中指定的值,所有其他值将保持默认值:

my_app.api.index = function(options) {
    options = Object.assign({
       page: 1,
       sort: "last_name",
       desc: true,
       limit: 9999
    }, options);


调用它:

my_app.api.index({sort: sortField});

关于javascript - 将单个参数传递给具有默认值的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51529122/

10-16 13:40