论坛首页 Web前端技术论坛

prototype class問題

浏览 3948 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-03-04  
這裡有兩個class, FormExt, AjaxRequest
我希望FormExt.submit()會新增一個AjaxRequest的Object
而當AjaxRequest.onComplete時,則會自動call FormExt()

是否必須把FormExt的object以參數形式傳入AjaxRequest嗎?
var FormExt = Class.create({
	initialize: function(id){
		this.id=id;
		this.obj=$(this.id);
		this.ajaxObj='';
		
		this.eventSubmit=this.submit.bindAsEventListener(this);
		Event.observe(this.id, 'submit', this.eventSubmit);
	},
	
	submit:function(e){
		this.ajaxObj=new AjaxForm(this.id);
		this.ajaxObj.startAjax();
		break;
	},
	
	reset:function(){
		this.obj.reset();
	}
}); 

var AjaxRequest = Class.create({
	initialize: function(id){
		this.frmObj=$(id);
		this.ajaxObj='';
	},
	
	startAjax: function(){
		this.ajaxObj = new Ajax.Request(
			'abc.php',{
				onComplete:this.onComplete.bind(this)
			}
		);
	}
	
	onComplete:function(){
		alert('complete now');
	}
});


   发表时间:2008-03-11  


恩最好将Class FormExt的实例传进去

要不就设置一全局变量保存FormExt的每个实例

之后onComplete调用全局变量的值

#    submit:function(e){ 
#         this.ajaxObj=new AjaxForm(this); 
这里传进去FormExt实例最好了
#         this.ajaxObj.startAjax(); 
#         break; 
#     },
0 请登录后投票
   发表时间:2008-03-13  
但這個合乎OO的concept嗎?
A object下產生了B object,然後把A object pass進B object,感覺怪怪的
0 请登录后投票
   发表时间:2008-03-13  


如里这么想的话我也感觉怪怪的呢

不过俺觉得能实现功能就好

而且你想想在java语言中要实现这样的功能 是否会避免这个问题呢?
0 请登录后投票
   发表时间:2008-03-13  
我不懂java,也不太懂OO...只是自學而已...
因此想知道一個比較合乎OO的方法
所以你問我"而且你想想在java语言中要实现这样的功能 是否会避免这个问题呢? "我也不懂怎樣回答...

假如分為三個object會好一點嗎??但我又想不到有什麼幫助
0 请登录后投票
   发表时间:2008-03-15  


但是几个Object之间还是有依赖(有一定的逻辑顺序)啊


这样感觉就很难避免Object之间的参数传递
0 请登录后投票
   发表时间:2008-03-15  
那麼即代表我這個方法已是沒有選擇下最好的一個,對嗎??
那麼我繼而使用了
0 请登录后投票
   发表时间:2008-03-15  


目前我是这么认为的
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics