|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-07-08
继续,仍然是实验目的,意义我自己还没有发现. 看上去就是把new 实例和属性给融合覆盖了.什么地方可以用到这种东西呢?
function jMixin(){
var ths=this;
var callee=arguments.callee;
var caller=arguments.callee.caller;
if (0==arguments.length) {
var args=[];
if (caller) ths = caller;
}else
if (1==arguments.length){
var args=arguments[0];
if (caller) ths = caller;
}else
if (2==arguments.length){
ths=arguments[0];
var args=arguments[1];
}
if (!ths || ths==window) ths={};
if (!ths.jMixin) ths.jMixin=callee;
for(var prop in args) {
if (prop=='prototype') continue;
ths[prop]=args[prop];
}
if (args.prototype) {
var n = new args;
for(var prop in n){
if (prop=='prototype') continue;
ths[prop]=n[prop];
}
}
return ths;
}
|
|
| 返回顶楼 | |



