共计 1015 个字符,预计需要花费 3 分钟才能阅读完成。
1.extend()
var obj1 = {
a:1,
b:2
};
var obj2 = {
c:3,
d:4
};
var assignObj = $.extend(obj1,obj2);
console.log('assignObj',assignObj);
console.log('obj1',obj1);
console.log('obj2',obj2);
可以发现 obj1 的值被改变了。
var obj1 = {
a:1,
b:2
};
var obj2 = {
c:3,
d:4
};
var assignOObj = $.extend({},obj1,obj2);
console.log('assignOObj',assignOObj);
console.log('obj1',obj1);
console.log('obj2',obj2);
extend() 中加一个空对象,obj1 的值就不会被改变。
2. 遍历
var obj1={a:1};
var obj2={b:2,c:3};
for(var key in obj2){if(obj2.hasOwnProperty(key)===true){
// 此处 hasOwnProperty 是判断自有属性,使用 for in 循环遍历对象的属性时,原型链上的所有属性都将被访问会避免原型对象扩展带来的干扰
obj1[key]=obj2[key];
}
}
console.log(obj1);
console.log(obj2);
3.Obj.assign()
可以把任意多个的源对象自身的可枚举属性拷贝给目标对象,然后返回目标对象。
Object.assign(target, …sources)
var obj1 = {
a:1,
b:2
};
var obj2 = {
c:3,
d:4
};
var assignObj = Object.assign(obj1,obj2);
console.log('assignObj',assignObj);
console.log('obj1',obj1);
console.log('obj2',obj2);
obj1 的值也被改变了, 和 $.extend() 类似.
var obj1 = {
a:1,
b:2
};
var obj2 = {
c:3,
d:4
};
var assignOObj = $.extend({},obj1,obj2);
console.log('assignOObj',assignOObj);
console.log('obj1',obj1);
console.log('obj2',obj2);
正文完
发表至: javascript
2019-08-11