zoukankan      html  css  js  c++  java
  • 关于Qomo 2.0 beta1的发布

    ===============================================================================
    Qomolangma OpenProject v2.0


    类别    :Rich Web Client
    关键词  :JS OOP,JS Framwork, Rich Web Client,RIA,Web Component,
              DOM,DTHML,CSS,JavaScript,JScript

    项目发起:aimingoo (aiming@gmail.com)
    项目团队:../../contributor.txt
    ================================================================================ 

    注意:此前对Qomo V2 beta1做过一次发布,但因为该版本文件已经丢失,且未在sourceforge中发布,
    因此此次发布仍然使用beta1的名称。并将更新sourceforge中的文件。

    一、Qomolangma 2.0 Beta1
    ============================

    参见如下发布说明:
    http://blog.csdn.net/aimingoo/archive/2007/07/25/1707419.aspx

    此外,今次发布的更新列表包括:
     - 添加工具函数toEtor()和类Dict()
     - Class()支持将匿名函数注册为匿名类
     - 在内核方面的一些优化代码
     - HttpGetMachine()作了一些小的修改

    二、有关toEtor()
    ============================

    参见/Framework/TestCase/T_Etor.html。
    所谓Etor,是指一种小型的执行器,可以处理代码、标志等。
    Etor()本质上是对eval()的封装,但它具有一些有趣的特性。例如我们在PHP中可以有一种类似如下的语法:
    =======
    str = "abcd${value}ghi"
    =======
    在这个例子中,如果我们试图将${value}替换为当前代码环境中的变量value的值,那么就可以使用etor来做。

    Etor是一个字符串,它可以通过toEtor()来得到,也可以通过eval()来执行。重要的是,我们在String中扩展
    了一个etor()方法,通过这个方法可以自动应用Etor,以替换字符串中的特定标志。

    Etor可以存取闭包外或从闭包外去存取闭包内部的数据。这一特性例用了eval()使用“当前闭包”中这一特
    性。因此Etor可以使用得非常灵活。有关代码可以参见上述的T_Etor.html。下面只简述基本用法:
    =======
    // 1. 得到一个有效etor的字符串
    function aFunc() {
      ...
    }
    et = toEtor(aFunc);

    // 应用一个etor
    function foo() {
      // 2. 使etor在指定环境中有效
      var etor = eval(et);

      // 3. 使用etor
      var value = '....';
      var str = "abcd${value}efg";
      alert(str.etor(etor));
    }
    =======

    三、有关匿名类
    ============================

    在旧版本的Class()函数中,第二个参数总是一个字符串。例如:
    =======
    TMyObject = Class(TObject, 'MyObject');
    =======
    这表明将MyObject()构造器注册为类。但是,如果MyObject()是匿名的,就没有办法处理了。在新
    版本的Qomo中,允许第二个参数为函数。因此,可以是:
    =======
    MyFunc = function() {
    }
    TNewObject = Class(TObject, MyFunc);
    =======
    也可以是:
    =======
    TNewObject = Class(TObject, function() {
      ...   // 在这里可以使用任意复杂的类声明
    });
    =======

    由于匿名类是没有类名的,因此系统事实上是将它写在命名空间下的TAnonymous类中。同样的原因,
    上面得到的TNewObject只是该类的一个引用,而非真实的类名。

    三、其它
    ============================
    Qomo V2.0 Beta 1下载
    ----------
    http://groups.google.com/group/qomo/files

    下载文件名:
    Qomo.V2.b1.zip

    或从如下地址签出SVN:
    ----------

    https://qomo.svn.sourceforge.net/svnroot/qomo/trunk

  • 相关阅读:
    HTML5存储
    HTML5 地理位置定位(Geolocation)原理及应用
    HTML5多媒体组件的使用
    HTML5拖拽
    HTML5一些总结
    js高级程序设计--数据类型
    JS高级程序设计基本概念
    浏览器内核、渲染引擎、js引擎
    JS高级程序设计笔记之script标签
    CenOS7下安装 nginx
  • 原文地址:https://www.cnblogs.com/encounter/p/2188654.html
Copyright © 2011-2022 走看看