`
ncisoft
  • 浏览: 29542 次
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

选择 JS OOP 实现方式,支持 Aptana IDE 的代码提示

阅读更多

直接写 JS 代码不需要 IDE 支持的牛人可跳过。。。

JS 在实现复杂的 RIA 组件时,如果没有 OOP 的支持会显得很麻烦,不利于代码重用,比如 Ext JS 的 Widget 里面就广泛用到了继承关系:Observable > Button > SplitButton = MenuButton,MooTools 中对接口的使用比较多。这 JS 代码越写越复杂,Aptana 对 JS 的代码提示支持,还是比较能提高生产效率的。

试用过 ExtJS、Prototype、MooTools、Base.js 等支持 OOP 比较好的框架,发现其 OOP 的实现方式都没有考虑到与 Aptana 的兼容性(YUI 代码太大了),就拿 Base 来举例

js 代码
  1. var Animal = Base.extend({   
  2.     constructor: function(name) {   
  3.         this.name = name;   
  4.     },   
  5.        
  6.     _eat: function() {},   
  7.        
  8.     _say: function(message) {}   
  9. });   
  10.   
  11. var Cat = Animal.extend({   
  12.     _eat: function(food) {}   
  13. });  

折腾半天,也没发现如何让 Aptana 提供代码提示。。。

Ext JS  的 OOP 实现方式比较传统,我喜欢这种风格,可是和 Aptana 的兼容性还是不够好,主要是 Ext.extend(subClass, superClass, overrides) 内部代码提示出不来,加以改造吧。

js 代码
  1. /**  
  2.  * @param {String} name  
  3.  */  
  4. function Aninmal(name) {}   
  5. Aninmal.prototype =    
  6. {   
  7.     /**  
  8.      * eat amount food  
  9.      * @param {Number} amount  
  10.      */  
  11.     _eat: function(amount) {},   
  12.   
  13.     /**  
  14.      * @param {String} message  
  15.      */    
  16.     _say: function(message) {}   
  17. }   
  18.   
  19. /**  
  20.  * @extends {Aninmal} 加上这句,Aptana就知道继承 Aninmal 的属性和方法  
  21.  * @param {Object} name  
  22.  */  
  23. function Cat(name) {}   
  24. Cat.prototype =    
  25. {   
  26.     /**  
  27.      * @param {Number} amount  
  28.      * @param {Boolean} isNotify  
  29.      */  
  30.     _eat: function(amount, isNotify) {}   
  31. }   
  32.   
  33. Ext.Class.extend(Cat, Aninmal, {});  // 伪代码,可以参考 Ext.extend,实现子类对父类的继承   
  34.   
  35. var obj = new Cat("");   
  36. // 对 obj 就可以用上代码提示了  


分享到:
评论
2 楼 fangzhouxing 2007-09-08  
试一下 Spket 1.6.3!
1 楼 sp42 2007-09-08  
不仅IDE OOP支持不好,文档的parser对OOP的支持也不好,明显的一个地方在,用JSDOC不能辨认Ext.extend(subclass,baseclss,{override})的语法(JSDOC 1.3)

相关推荐

    javascript oop模式讲解

    JavaScript OOP(面向对象编程)模式是编程领域中一种重要的设计思想,它允许开发者通过类和对象来组织和管理代码,提高代码的可重用性和可维护性。在这个讲解中,我们将深入探讨JavaScript中的OOP模式,特别是如何...

    OOP的PPT 面向对象的代码

    面向对象编程(Object-Oriented Programming,简称OOP)是一种流行的编程范式,它基于“对象”的概念,通过封装、继承和多态等核心特性,实现了高效、可维护的代码组织方式。本PPT深入探讨了OOP的核心原理及其在实际...

    oop面向设计源代码

    oop面向设计源代码oop面向设计源代码oop面向设计源代码oop面向设计源代码

    在.NET三层框架下实现OOP学校资源管理系统源代码带单元测试

    《.NET三层框架下的OOP学校资源管理系统源代码解析与扩展》 在.NET技术栈中,采用三层架构设计模式开发的学校资源管理系统是一种常见的实践。三层架构,即表现层(Presentation Layer)、业务逻辑层(Business ...

    Java 第一阶段建立编程思想 【零钱通(OOP)】---- 代码

    Java 第一阶段建立编程思想 【零钱通(OOP)】---- 代码 Java 第一阶段建立编程思想 【零钱通(OOP)】---- 代码 Java 第一阶段建立编程思想 【零钱通(OOP)】---- 代码 Java 第一阶段建立编程思想 【零钱通(OOP)...

    Java oop 聂书志 案例开发源代码

    Java面向对象编程(Object-Oriented Programming,简称OOP)是一种强大的编程范式,它将程序设计中的实体抽象为类,通过类的实例化来创建对象,并通过对象之间的交互实现功能。聂书志的Java OOP案例开发源代码提供了...

    JAVA OOP 门禁系统项目 源代码

    本项目以Java OOP为基石,利用其特性实现了门禁系统的源代码。Eclipse作为流行的Java集成开发环境,为开发者提供了便利的开发工具,使得项目的构建和调试更为高效。 **1. 类与对象的定义** 在门禁系统中,首先需要...

    OOP_CODE详细代码

    面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它基于“对象”的概念,将数据和操作数据的方法封装在一起,以实现代码的模块化和重用性。在OOP_CODE详细代码中,我们可以看到一个针对初学者...

    s2 JavaOOP上机作业全部代码

    Java面向对象编程(Java OOP)是Java编程的核心概念,它允许我们以真实世界中的实体——如对象——的方式来思考和构建软件。在这个“s2 JavaOOP上机作业全部代码”压缩包中,包含了学生在学习Java OOP时可能遇到的...

    书籍:C语言实现OOP

    《C语言实现OOP》是一本独特而富有挑战性的书籍,它揭示了如何在传统的、非面向对象的C语言中实现面向对象编程(OOP)的概念。面向对象编程是一种广泛应用于现代软件开发的方法,它强调数据和操作数据的函数封装在...

    工业自动化 TwinCAT3 OOP编程基本例程(方法,接口,属性,实现)

    本教程将深入探讨TwinCAT3中的面向对象编程(OOP)概念,包括方法、接口、属性以及它们的实现。这将帮助工程师更高效地编写和组织复杂的自动化程序。 首先,我们来看**方法**。在OOP中,方法是对象可以执行的操作。...

    OOP实现计算机功能

    4. 继承(Inheritance):继承允许一个类(子类)继承另一个类(父类)的属性和方法,实现代码复用。在我们的计算器示例中,可能并不直接涉及继承,但如果我们要扩展到更复杂的科学计算器,可以考虑创建一个基础的`...

    C++ Builder 5高级编程技术——IDE与OOP编程

    C++ Builder 5是一款强大的集成开发环境(IDE),专为C++编程设计,它结合了 Borland 的编译器...通过熟练掌握IDE的使用和OOP的精髓,开发者可以在C++ Builder 5中实现高效且可维护的代码,大大提高软件开发的生产力。

    绝对经典 用C实现OOP

    在《用C实现OOP》的PDF文档中,读者可以期待学习到如何构建这些抽象数据类型,如何使用函数指针实现方法,以及如何组织代码来模拟类的层次结构。此外,文档可能还会介绍一些高级技巧,如动态内存分配来创建对象,...

    js-oop.rar_control

    在 "js-oop.rar_control" 中,我们可以推测这是一个与 JavaScript OOP 相关的压缩包,可能包含了一些示例代码或工具,用于帮助开发者更好地理解和应用 OOP 技术。 在 Fireball.CodeEditor 控件中,我们看到了一个源...

    c语言实现面向对象OOP

    C语言,虽然本身不直接支持面向对象特性,但可以通过一些技巧模拟实现面向对象的概念。在C语言中实现OOP,通常包括封装、继承和多态这三大特性。 1. 封装:封装是将数据和操作这些数据的方法绑定在一起,形成一个...

    oop与javascript

    在JavaScript中实现OOP主要依赖于原型继承和类的概念。 ##### 1. 对象与类 - **对象**:是具有属性和行为的实体。在JavaScript中,一切皆为对象。 - **类**:定义了一组拥有相同属性和方法的对象模板。虽然原生...

    S2上机3用oop实现结构

    1. **设计数据模型**:根据数据库表创建对应的实体类,这些类通常会继承自.NET提供的`System.ComponentModel.DataAnnotations`命名空间中的特性,以实现数据验证和ORM(对象关系映射)库如Entity Framework的支持。...

    基于OOP实现学员选择器(源码).zip

    标题 "基于OOP实现学员选择器(源码).zip" 暗示这是一个使用面向对象编程(Object-Oriented Programming, OOP)方法开发的软件项目,主要用于管理或选择学员。这个项目可能是一个简单的应用,它允许用户通过图形...

Global site tag (gtag.js) - Google Analytics