JavaScript中的命名参数

JavaScript中的命名参数

说我有一个这样的功能

function myFunc(a, b, c)
{
    if(a!=undefined) this.a = a;
    if(b!=undefined) this.b = b;
    if(c!=undefined) this.c = c;
}


而且我只想为b设置值,那么我可以做这样的事情。

myFunc(undefined, "some Value for b", undefined);


但是我想知道是否可以通过某种方式设置b的值

myFunc(b:"some value for b");


这可能是错误的,但您可能明白我的意思。我想指定属性的名称以及值,这样我就不必担心传递未定义的值。我该怎么做?

也可以随意更改标题,我不知道该叫什么问题。

最佳答案

是的,传入对象文字

function myFunc(options)
{
    if(options.a!=undefined) this.a = options.a;
    if(options.b!=undefined) this.b = options.b;
    if(options.c!=undefined) this.c = options.c;
}


像这样打电话

var var1 = new myFunc({b:"some value for b"});


或者以更动态,可扩展的方式(如上所述)

function myFunc(obj)
{
    for (var i in obj)
    {
        if(obj.hasOwnProperty(i))
        {
            this[i]=obj[i];
        }
    }
}

var func = new myFunc({b:"some value for b"});
console.log(func.b);//"some value for b"

关于javascript - JavaScript中的命名参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15508282/

10-10 18:22