`
bellstar
  • 浏览: 148469 次
  • 性别: 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-sdk

    前端开源库-qooxdoo-sdkQooxdoo SDK,面向编码人员的JS框架

    qooxdoo-qooxdoo-release_2_0_1

    qooxdoo 2.0.1 开发包,就算不会HTML也可以轻松开发完美流畅的动态页面应用,就如同开发PC软件,完全面向对象,会JavaScript 就OK

    qooxdoo-cli:(已弃用,移至qooxdoo-compiler中)qx命令行

    将不建议使用npm模块qx-cli ,从现在开始,您要做的所有事情是: $ npm install -g qooxdoo-compiler$ qx create myapp$ cd myapp$ qx compile不要忘记,如果您以前安装过qx-cli ,则必须发出以下命令: $ npm ...

    qooxdoo-compiler:Qooxdoo的编译器,100%javascript

    Qooxdoo-Compiler是Qooxdoo( )应用程序的新编译器和命令行界面,使用100%Node.JS Javascript编写,它在标准python生成器上进行了以下关键改进: 包括Babel,用于将ES6添加到所有Qooxdoo应用程序中 快速(最快24...

    qooxdoo-contrib-开源

    qooxdoo-contrib是qooxdoo项目(http://qooxdoo.org)的组成部分。 用户可以在简洁的结构中灵活地开发,维护和促进贡献。 贡献可以轻松地集成到自定义qooxdoo应用程序中。 注意:SourceForge上的此存储库是旧版! 它...

    qooxdoo:qooxdoo-通用JavaScript框架

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

    GUI RAD for qooxdoo-开源

    qooxdoo框架的快速应用程序开发。 您可以拖放组件,定义属性并生成源代码。

    前端项目-qooxdoo.zip

    前端项目-qooxdoo,Universal JavaScript Framework

    qooxdoo.pdf

    qooxdoo的官方文档,详细介绍了如何入门qx.英文版的.建议多读英文原版,因为有些不错的技术不一定会及时的出汉化的。

    qooxdoo sdk 1.0

    qooxdoo sdk 1.0开源AJAX框架之qooxdoo之SDK

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

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

    Qooxdoo Tools-crx插件

    语言:English (United ...扩展开发人员工具,添加显示与所选DOM元素关联的QooxDoo数据的侧栏。 扩展开发人员工具,添加一个侧栏,显示与所选相关联的Qooxdoo数据。 DOM元素。 在控制台中使用$ q使用所选窗口小部件。

    qooxdoo4.1

    一个面像对象的富客户端的js开发框架。这里做一个备份,供大家加快下载速度

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

    qooxdoo是一个通用JavaScript框架,用于为各种平台创建应用程序。 它具有全面的功能集,包括面向对象的编程模型,集成的工具链和最新的GUI工具包。

    Qooxdoo工具「Qooxdoo Tools」-crx插件

    扩展开发工具,添加一个侧栏,显示与所选DOM元素相关联的Qooxdoo数据。 扩展开发人员工具,添加侧边栏,以显示与所选DOM元素关联的Qooxdoo数据。 在控制台中使用$ q与选定的小部件一起使用。 支持语言:English ...

    springmvc-qooxdoo:Spring MVC + Qooxdoo

    Spring MVC和Qooxdoo

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

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

    Qooxdoo GUI Designer

    qooxdoo开发框架的界面可视化设计器

    新将delphi的form窗口转换为qooxdoo窗体

    为了加快qooxdoo窗口的设计,我使用delphi做一个简单的转换程序,使用它可以将delphi窗体转换为qooxdoo窗口布局文件。

    qxl.apiviewer:qooxdoo apiviewer应用

    Qooxdoo API查看器这是Qooxdoo的API Viewer程序包,您可以使用该程序包为自己的应用程序生成API Viewer。在线版本(qx名称空间) 为您自己的代码添加API查看器 $ qx pkg update$ qx pkg install qooxdoo/qxl.api...

Global site tag (gtag.js) - Google Analytics