JS将所有对象s的属性复制给对象r(原生js+jquery)_javascript技巧
程序员文章站
2022-05-04 08:11:39
...
原生写法:
/**
* 将所有 s 的属性复制给 r
* @param r {Object}
* @param s {Object}
* @param is_overwrite {Boolean} 如指定为 false ,则不覆盖已有的值,其它值
* 包括 undefined ,都表示 s 中的同名属性将覆盖 r 中的值
*/
mix: function (r, s, is_overwrite) { //TODO:
if (!s || !r) return r;
var a={
aa:1,
ab:2
};
var b={
ba:1,
bb:2
};
复制代码 代码如下:
/**
* 将所有 s 的属性复制给 r
* @param r {Object}
* @param s {Object}
* @param is_overwrite {Boolean} 如指定为 false ,则不覆盖已有的值,其它值
* 包括 undefined ,都表示 s 中的同名属性将覆盖 r 中的值
*/
mix: function (r, s, is_overwrite) { //TODO:
if (!s || !r) return r;
for (var p in s) {
if (is_overwrite !== false || !(p in r)) {
r[p] = s[p];
}
}
return r;
}
jQuery写的话就太方便了
复制代码 代码如下:
var a={
aa:1,
ab:2
};
var b={
ba:1,
bb:2
};
$.extend(a,b);
console.info(a);