`
bellstar
  • 浏览: 151407 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

qooxdoo--面向对象的特征

阅读更多
原文链接:http://qooxdoo.org/documentation/0.8/oo_feature_summary
定义具有完全限定名的类
qx.Class.define("my.cool.Class");

实例化这个类
var myClass = new my.cool.Class;

继承
qx.Class.define("my.great.SuperClass", {
  // I'm the super class
});
 
qx.Class.define("my.cool.Class", {
  extend : my.great.SuperClass
});

指定构造函数的类
qx.Class.define("my.cool.Class", 
{
  extend : my.great.SuperClass,
  construct : function() {
    ...
  }
});

声明类的静态成员
qx.Class.define("my.cool.Class", 
{
  statics : 
  { 
    FOO : VALUE,
    BAR : function() { ... }
  }
});

my.cool.Class.FOO = 3.141;
my.cool.Class.BAR();

声明类的成员(实例成员)
qx.Class.define("my.cool.Class", 
{
  members: 
  { 
    foo : VALUE,
    bar : function() { ... }
  }
});

var myClass1 = new my.cool.Class;
myClass1.foo = 3.141;
myClass1.bar();

实例成员访问静态成员 this.self(arguments).成员名
qx.Class.define("my.cool.Class", 
{
  statics : {
    PI : 3.141
  }
  members : {
    circumference : function(radius) {
      return 2 * this.self(arguments).PI * radius;
    }
  }
});

访问父类的静态成员 this.superclass.self(arguments).成员名
qx.Class.define('A', {
  statics: {
     f: function() {}
  }
});

qx.Class.define('B'), {
  extend: A,
  members: {
     e: function() {
        this.superclass.self(arguments).f();
     }
  }
});



调用父类的构造函数 this.base(arguments,参数)
qx.Class.define("my.cool.Class", 
{
  extend : my.great.SuperClass,
  construct : function(x) {
    this.base(arguments, x);
  }
});


析构函数
qx.Class.define("my.cool.Class", 
{
  extend : my.great.SuperClass,
  construct : function() {
    ...
  }
  destruct : function() {
    ...
  }
});

定义接口
qx.Interface.define("my.cool.IInterface");

定义Mixin
qx.Mixin.define("my.cool.MMixin");

类定义时包含Mixin
qx.Class.define("my.cool.Class", 
{
  include : [my.cool.MMixin, my.other.cool.MMixin]
  ...
});

为已定义的类包含Mixin
qx.Class.include(qx.ui.core.Widget, qx.MWidgetExtensions);

类成员可访问性的名称约定
publicMember //public
_protectedMember //protected
__privateMember //private,在构建时可通过选项设置将名称替换成随机名称

静态类
qx.Class.define("my.cool.Class", {
  type : "static"
});

抽象类
qx.Class.define("my.cool.Class", {
  type : "abstract"
});

单例类
qx.Class.define("my.cool.Class", 
{
  type : "singleton",
  extend :  my.great.SuperClass
});

访问前面定义的成员
qx.Class.define("my.cool.Class",
{
  statics:
  {
    driveLetter : "C"
  },
  defer: function(statics, members, properties) 
  { 
    statics.drive = statics.driveLetter + ":\\";
    members.whatsTheDrive = function() {
      return "Drive is " + statics.drive;
    };
  }
});

针对特定浏览器的方法
members: 
{
  foo: qx.core.Variant.select("qx.bom.client.Engine.NAME", 
  {
    "mshtml|opera": function() {
       // Internet Explorer or Opera
    },
    "default": function() {
       // All other browsers
    }
  })
}

事件
qx.Class.define("qx.come.Class",
{
  extend: qx.core.Target,
 
  events :
  {
    /**  Fired when the widget is clicked. */
    "click": "qx.event.type.MouseEvent"
  } 
  ...
})

分享到:
评论

相关推荐

    qooxdoo-qooxdoo-release_2_0_1

    3. **面向对象编程**:qooxdoo完全基于面向对象的编程模型,允许开发者定义自己的类,继承现有类,并实现多态性。这使得代码结构清晰,易于维护。 4. **数据绑定**:框架提供了数据绑定机制,使得UI组件可以自动...

    前端开源库-qooxdoo-sdk

    Qooxdoo的核心是其类库系统,它引入了面向对象编程的概念到JavaScript中。通过类定义,开发者可以创建自定义的组件和模块,这些组件在运行时可以通过继承和组合来扩展和重用。类库包含了丰富的UI组件,如按钮、表单...

    qooxdoo:qooxdoo-通用JavaScript框架

    通过其面向对象的编程模型,您可以构建丰富的交互式应用程序(RIA),用于移动设备的类似于本机的应用程序,轻量级的传统Web应用程序,甚至可以在浏览器外部运行的应用程序。 您可以利用其集成的工具链来开发和部署...

    前端项目-qooxdoo.zip

    1. **类系统**:qooxdoo采用面向对象编程模型,提供强大的类系统,支持继承、封装和多态性,使JavaScript代码更具有结构和可维护性。 2. **源码到源码编译器**:qooxdoo包含一个源码到源码的编译器,能够将开发者...

    qooxdoo sdk 1.0

    1. **对象导向编程**:qooxdoo基于面向对象的编程模型,允许开发者使用类和对象的概念来构建JavaScript代码,提高代码的可重用性和可维护性。 2. **编译器**:qooxdoo的编译器将源代码转换为优化的JavaScript,提高...

    qooxdoo.pdf

    qooxdoo框架采用了面向对象的方法,具有类、接口、混入(Mixins)和属性等面向对象编程的核心概念。这些编程范式提供了一种组织和封装应用程序代码的方式,有助于提升代码的可读性和可维护性。对象属性是qooxdoo中的...

    qooxdoo4.1

    **Qooxdoo 4.1:面向对象的JavaScript富客户端开发框架** Qooxdoo是一个强大且功能丰富的JavaScript框架,特别设计用于构建富互联网应用程序(RIA)。它以面向对象的编程模型为核心,为开发者提供了丰富的工具和库...

    springmvc-qooxdoo:Spring MVC + Qooxdoo

    它通过依赖注入(DI)和面向切面编程(AOP)来管理组件,确保代码的解耦和模块化。Spring MVC的主要组件包括DispatcherServlet、Controller、ViewResolver和ModelAndView等。 1. **DispatcherServlet**:它是Spring...

    Qooxdoo 1.3 SDK

    Qooxdoo是一个面向对象的JavaScript库,它提供了一个强大的类系统,允许开发者以面向对象的方式编写代码。它包含了大量的预定义类,如UI组件、数据模型、动画和网络通信,这些都可以通过继承和组合来扩展和定制。 ...

    qooxdoo:一个通用JavaScript框架-开源

    qooxdoo采用面向对象的编程方式,这意味着开发者可以利用类、继承、封装和多态等概念来组织代码。这种模型使得代码结构更加清晰,易于理解和维护。通过定义类和对象,开发者可以创建复杂的业务逻辑和用户界面,同时...

    qooxdoo:一个全面和创新的AJAX应用程序框架_part1

    利用面向对象的JavaScript允许开发令人印象深刻的跨浏览器的应用。没有HTML,CSS知识,也不是必要的。它包括一个独立于平台的开发工具链,一个最先进的图形用户界面工具和先进的客户端与服务器之间的通讯层。

    QXGUIDesigner(20160616)

    **qooxdoo**是一个开源的JavaScript框架,它不仅提供了面向对象的编程模型,还包含了丰富的UI组件库和一套强大的命令行工具。通过qooxdoo,开发者可以构建高性能、跨平台的Web应用程序。而**QXDesigner**则作为...

    qooxdoo:一个全面和创新的AJAX应用程序框架_part2

    利用面向对象的JavaScript允许开发令人印象深刻的跨浏览器的应用。没有HTML,CSS知识,也不是必要的。它包括一个独立于平台的开发工具链,一个最先进的图形用户界面工具和先进的客户端与服务器之间的通讯层。

    javascript 树控件 比较好用

    - QooXdoo是一个面向对象的JavaScript库,它的Tree Widget采用OOP风格编写。 - 这个树控件允许自定义样式,可以模仿文件系统的视觉效果。 - 支持动态添加子节点和键盘导航,增强了用户体验。 3. **jsTree** - ...

    QxThree:用于qooxdoo应用程序的Three.js集成插件

    qooxdoo的核心优势在于其面向对象的编程模型和组件系统,允许开发者构建复杂且可复用的用户界面。然而,对于三维图形处理,qooxdoo自身并不提供直接支持。这就是QxThree插件的用武之地。它允许开发者在qooxdoo应用...

    前端开源库-qxcompiler

    1. **类系统**:Qooxdoo引入了面向对象的编程模型,允许开发者使用类和继承来组织代码。 2. **DOM抽象**:通过自己的虚拟DOM,Qooxdoo提供了高效的UI更新机制。 3. **主题和皮肤**:支持自定义主题和样式,使得应用...

    qxrad:qxrad 是 QooxDoo 的图形界面

    在JavaScript标签的背景下,QooxDoo的强项在于它提供了面向对象的编程模型,允许开发者使用类和继承来构建复杂的JavaScript应用。它的API设计得非常模块化,使得代码可以被轻松地重用和扩展。QooxDoo还具有强大的...

    16款最流行的JavaScript框架-开源中国社区.docx

    10. **Archetype** - Archetype是一个面向对象的JavaScript框架,它与Prototype有相似之处,但更强调代码的可读性和模块化。它有自己的组件管理系统,仅初始化页面需要的部分。 11. **Rico** - Rico是一个基于现有...

    AJAX框架汇总Purejavascript: Application Frameworks

    该框架支持Java、ActiveX、Flash等多种插件,并且具有面向对象的特性。 - **特性**: - 支持Zero-Footprint(零足迹)SOA客户端选择; - 提供丰富的API接口; - 支持XML、SOAP、XML-RPC等多种数据格式; - 不...

Global site tag (gtag.js) - Google Analytics