论坛首页 Web前端技术论坛

Ajax.Request可以继承吗?

浏览 2740 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-12-24  

我看prototype源代码中的这个类是可以继承的,但是我自己继承老是出错,下面是我的代码。帮忙看看!

js 代码
  1. var Subscribe = Class.create(Ajax.Request, {   
  2.     initialize: function($super, product_name,    
  3.             info_span_id, loading_image, url, options) {   
  4.         options = options || { };   
  5.   
  6.         this.product_name = product_name;   
  7.         this.info_span_id = info_span_id;   
  8.         this.loading_image = loading_image;   
  9.         this.url = url;   
  10.         $super(url, options);   
  11.     }   
  12. });  
   发表时间:2007-12-25  
看你的代码需求,我建议不要继承,而是重新定义类,在类中封装使用Ajax.Request。这是OOP的一种耦合方法。 继承类必须是要有“父子关系”。而Ajax.Request只是一个工具类,而你要“继承的”却是一个业务类。
0 请登录后投票
   发表时间:2007-12-25  

我本来的意思是想要继承Ajax.Request ,然后添加一些属性,用来在回调方法中使用,由于我无法继承,最后改成用组合,这样也更加符合面向对象的思想,修改后的代码是这样的。

js 代码
  1. var Subscribe = Class.create({   
  2.     initialize: function(product_name, info_span_id) {   
  3.         this.product_name = product_name;   
  4.         this.info_span_id = info_span_id;   
  5.     },   
  6.        
  7.     subscribe: function(url, options) {   
  8.         options = options || {};   
  9.         options.onComplete = this.onComplete(this.product_name);   
  10.         new Ajax.Request(url, options);   
  11.     },   
  12.        
  13.     onComplete: function(product_name) {   
  14.         alert(product_name);   
  15.     }   
  16. });  

 但是我一直搞不明白的是我为什么写的继承不可用,如果是继承自己写的类,完全可以,但是集成Ajax.Request却老是出错,不是怎么明白。

0 请登录后投票
论坛首页 Web前端技术版

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