extend 有2种常用的方法:
1 扩充 jQuery ,用法详见api。。
2 对象的扩充(我更想叫它合并): 后面的覆盖前面的, 并且返回被覆盖后的对象...
var objectA = {a : 'aaa' , b: 'bbb' } ; var objectB = {c : 'ccc' , b: 'b' } ;
var opt = jQuery.extend(objectA, objectB);
console.log(opt); // 结果 opt {a:'aaa', b:'b' , c:'ccc'};
没事,就写了个假的:
先写一个函数: var MyExt = function () {...}
1 扩充,一般是基于 MyExt['name'] = xxx, 所以,当传一个参数时:
if(arguments.length == 1) {
var obj = arguments[0]; // 让obj等于第一个参数
var target = this; // this 是 MyExt
for( var name in obj){
target[name] = obj [name]; //加入扩展
}
}
2 覆盖, 就让他重复好了,,
if(arguments.length == 2) {
var obj1 = arguments[0], obj2 = arguments[1];
var target = obj1;
for( var name in obj2){
target[name] = obj2 [name];
}
return target;
}
所以,这个方法的雏形就有了(一个可以扩展MyExt,和合并对象的extend), 当然,是应该优化的!
MyExt.extend = MyExt.prototype.extend = function() {
if(arguments.length == 1) {
var obj = arguments[0];
var target = this; // this 是 MyExt
for( var name in obj){
target[name] = obj [name];
}
}
if(arguments.length == 2) {
var obj1 = arguments[0], obj2 = arguments[1];
var target = obj1;
for( var name in obj2){
target[name] = obj2 [name];
}
return target;
}
}
如果有兴趣, 参见 jquery-1.3.1.js ... 550 - 600行左右,
原文: [url]http://hi.baidu.com/ezscript/blog/item/05a73752e2d2d32842a75bc4.html[/url]
1 扩充 jQuery ,用法详见api。。
2 对象的扩充(我更想叫它合并): 后面的覆盖前面的, 并且返回被覆盖后的对象...
var objectA = {a : 'aaa' , b: 'bbb' } ; var objectB = {c : 'ccc' , b: 'b' } ;
var opt = jQuery.extend(objectA, objectB);
console.log(opt); // 结果 opt {a:'aaa', b:'b' , c:'ccc'};
没事,就写了个假的:
先写一个函数: var MyExt = function () {...}
1 扩充,一般是基于 MyExt['name'] = xxx, 所以,当传一个参数时:
if(arguments.length == 1) {
var obj = arguments[0]; // 让obj等于第一个参数
var target = this; // this 是 MyExt
for( var name in obj){
target[name] = obj [name]; //加入扩展
}
}
2 覆盖, 就让他重复好了,,
if(arguments.length == 2) {
var obj1 = arguments[0], obj2 = arguments[1];
var target = obj1;
for( var name in obj2){
target[name] = obj2 [name];
}
return target;
}
所以,这个方法的雏形就有了(一个可以扩展MyExt,和合并对象的extend), 当然,是应该优化的!
MyExt.extend = MyExt.prototype.extend = function() {
if(arguments.length == 1) {
var obj = arguments[0];
var target = this; // this 是 MyExt
for( var name in obj){
target[name] = obj [name];
}
}
if(arguments.length == 2) {
var obj1 = arguments[0], obj2 = arguments[1];
var target = obj1;
for( var name in obj2){
target[name] = obj2 [name];
}
return target;
}
}
如果有兴趣, 参见 jquery-1.3.1.js ... 550 - 600行左右,
原文: [url]http://hi.baidu.com/ezscript/blog/item/05a73752e2d2d32842a75bc4.html[/url]