Native way to merge objects in Javascript
Using ES6 (ES2015) you can use Object.assign method:
var x = {a:1, b:2};
var y = {c:3, d:4};
var z = Object.assign({},x,y);
Using ES7 (ES2016, Chrome 60+ or Babel) you can use Object spread operator:
var x = {a:1, b:2};
var y = {c:3, d:4};
var z = {...x, ...y};
My answer to this will be disappointing, but still:
no
The reason for this is simple: Mr Resig's implementation of merge (or "extend" as it's called for objects) in jQuery is doing a loop, just like the one in your question. You can look at it here. And I dare say that if John Resig hasn't found a clever build-in way to do it, then the mere mortals of stackoverflow won't either :)