JS参数(对象)合并方法汇总

JavaScript017

JS参数(对象)合并方法汇总,第1张

function combineConfig(config)

{

let defconfig = {

name : "我是默认name",

age : "我是默认age:12",

}

defconfig = {...defconfig,...config}

return defconfig

}

function combineConfig_Object(config)

{

let defconfig = {

name : "我是默认name Object",

age : "我是默认age:12 Object",

}

Object.assign(defconfig, config)

return defconfig

}

function combineConfig_jquery(config)

{

let defconfig = {

name : "我是默认name jquery",

age : "我是默认age:12 jquery",

}

$.extend(defconfig, config)

return defconfig

}

function combineConfig_for(config)

{

let defconfig = {

name : "我是默认name jquery",

age : "我是默认age:12 jquery",

}

for (let k in config)

{

defconfig[k] = config[k]

}

return defconfig

}

javascript函数中的参数对象arguments是个对象,而不是数组。但它可以类似数组那样通过数字下表访问其中的元素,而且它也有length属性标识它的元素的个数。通常我们把它转换成数组用array的slice函数,示例代码如下:function

fn()

{

var

arr

=

array.prototype.slice.call(arguments,0)

alert(arr.length)}

>var a = 3

undefined

>a

3

>var str = "12345678"

undefined

>str

'12345678'

>str.substr(a)

'45678'

>str.substr('+a+')

'12345678'

>str.substr(a-1)

'345678'

nodejs

中的执行结果,因为

a

==

3,所以你调用

str.substr(a)

就等于调用了

str.substr(3),而

str.substr(a-1)

就等同于调用

str.substr(2)。进一步的,你调用

str.substr('+a+'),实际上是往

substr

方法里传了一个字符串

+a+,字符串不是数字,substr

把它理解为了0。

使用变量作为参数和使用字面量作为参数没有任何区别,在方法执行那一刻变量的值是什么,那么就相当于你用那个值的字面量去调用方法。