关于JQ中的extend及扩展
extend 的使用说穿了很简单,无非2类。
实现: $.extend(对象A,对象B);
就是把对象B中的内容复制进对象A中,JAVAZ中Struts框架中的BeanUtils
$.extend(“新对象”,对象B);就是类似于JAVA和C#中的new 好了这些都不支持对象的对象的互换。
至于使用二个以上的参数都是以此类推的方式。
现在我提供一个支持对象的对象,包括对象的集合中的对象的复制方法,这样可以支持复杂对象的复制。
1JQuery.fn.extend(
2Extend: function(json, jsonCol) {
3 for (var name in jsonCol) {
4 if (typeof (jsonCol) == 'object' && json[name]) {
5 if (this.IsArray(jsonCol[name])) {
6 for (var i = 0; i < jsonCol[name].length; i++) {
7 if (!json[name][i]) {
8 json[name].push({});
9 }
10 this.Extend(json[name][i], jsonCol[name][i]);
11 }
12 } else {
13 this.Extend(json[name], jsonCol[name]);
14 }
15 } else {
16 $.extend(json, jsonCol);
17 }
18 }
19 return json;
20 },
21 IsArray: function(test) {
22 if (typeof test == 'object' && typeof test.sort == 'function' && typeof test.length == 'number') {
23 return true;
24 }
25 else {
26 return false;
27 }
28 }
29);
2Extend: function(json, jsonCol) {
3 for (var name in jsonCol) {
4 if (typeof (jsonCol) == 'object' && json[name]) {
5 if (this.IsArray(jsonCol[name])) {
6 for (var i = 0; i < jsonCol[name].length; i++) {
7 if (!json[name][i]) {
8 json[name].push({});
9 }
10 this.Extend(json[name][i], jsonCol[name][i]);
11 }
12 } else {
13 this.Extend(json[name], jsonCol[name]);
14 }
15 } else {
16 $.extend(json, jsonCol);
17 }
18 }
19 return json;
20 },
21 IsArray: function(test) {
22 if (typeof test == 'object' && typeof test.sort == 'function' && typeof test.length == 'number') {
23 return true;
24 }
25 else {
26 return false;
27 }
28 }
29);
看了某位仁兄的文章后,知道JQ自带这样的功能呵呵,就是$.extend(true,对象A,对象B)