Side navigation
#14275 closed bug (notabug)
Opened August 20, 2013 02:22PM UTC
Closed August 20, 2013 05:43PM UTC
jQuery.extend does not copy fields value fo undefined from objectN to target
| Reported by: | sempasha@gmail.com | Owned by: | |
|---|---|---|---|
| Priority: | undecided | Milestone: | None |
| Component: | unfiled | Version: | 2.0.3 |
| Keywords: | Cc: | ||
| Blocked by: | Blocking: |
Description
jQuery.extend demonstrates unexpected behavior. Fields from objectN with value of ''undefined'' does not copy to target object.
Example:
var target = {};
var object1 = {
undefined_field: undefined,
null_field: null
};
var result = $.extend({}, target, object1);
console.log('target:');
for (var field in target)
console.log(field, target[field]);
console.log('');
console.log('object1:');
for (var field in object1)
console.log(field, object1[field]);
console.log('');
console.log('result:');
for (var field in result)
console.log(field, result[field]);
Output:
> target: > > object1: > undefined_field undefined > null_field null > > result: > null_field null
Expected output:
> target: > > object1: > undefined_field undefined > null_field null > > result: > undefined_field undefined > null_field null
Bug reproduces with jQuery versions of 1.8.3, 1.10.2, 2.0.3.
Attachments (0)
Change History (2)
Changed August 20, 2013 02:40PM UTC by comment:1
Changed August 20, 2013 05:43PM UTC by comment:2
| resolution: | → notabug |
|---|---|
| status: | new → closed |
As documented in http://api.jquery.com/jQuery.extend/ :
Undefined properties are not copied.
We definitely wouldn't want to change documented behavior here, it certainly should be expected by those who read the documentation.
See examples by links below:
jQuery 1.8.3
jQuery 1.10.2
jQuery 2.0.3
''* it's recommended to use jsFiddle.net, but it's down now''