Jquery 扩展、字符串化和isPlainObject

Jquery 扩展、字符串化和isPlainObject,jquery,Jquery,我正在尝试了解此代码是如何工作的: <script> var object1 = { apple: 0, banana: {weight: 52, price: 100}, cherry: 97 }; var object2 = { banana: {price: 200}, durian: 100 }; /* merge object2 into object1 */ $.extend(objec

我正在尝试了解此代码是如何工作的:

  <script>
  var object1 = {
      apple: 0,
      banana: {weight: 52, price: 100},
      cherry: 97
  };
  var object2 = {
     banana: {price: 200},
     durian: 100
  };

  /* merge object2 into object1 */
  $.extend(object1, object2);

  var printObj = typeof JSON != "undefined" 
       ? JSON.stringify : function(obj) {
    var arr = [];
  $.each(obj, function(key, val) {
      var next = key + ": ";
      next += $.isPlainObject(val) ? printObj(val) : val;
      arr.push( next );
  });
  return "{ " +  arr.join(", ") + " }";
  };

  $("#log").append( printObj(object1) );
  </script>

var object1={
苹果:0,
香蕉:{重量:52,价格:100},
樱桃:97
};
var object2={
香蕉:{价格:200},
榴莲:100
};
/*将object2合并到object1中*/
$.extend(object1、object2);
var printObj=JSON的类型!=“未定义”
? JSON.stringify:函数(obj){
var-arr=[];
$。每个(对象、功能(键、值){
var next=key+“:”;
next+=$.isPlainObject(val)?printObj(val):val;
arr.push(下一步);
});
返回“{”+arr.join(“,”+“}”;
};
$(“#log”).append(printObj(object1));

我了解
stringify()
isPlainObject()
在做什么,我一直在测试代码,我意识到没有使用
函数(obj)
?这真令人困惑。我不明白

很好的参考!非常感谢您的直接解释,函数(obj)为没有内置JSON对象的浏览器提供了一个回退。如果在IE 8中测试它,它将被用于工具!!!很好,这些评论帮助我理解了这段代码。。。德克萨斯州!!!