论坛首页 AJAX版 JavaScript

测试,探讨jMixin模式

浏览 1525 次
精华帖 (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;
}
 
   
0 请登录后投票
论坛首页 AJAX版 JavaScript

跳转论坛:
JavaEye推荐