`
openxtiger
  • 浏览: 151752 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Javascript写的Java --- j语言

 
阅读更多

这次真的把java的语法写成javascript了,看起来太熟悉了。

先给个例子:

 

j('package j.unit', function() {
    /**
     * @class j.unit.Observable
     */
    j('class Observable', function(jsuper) {

        return {

            constructor:function() {
                jsuper.constructor.call(this);
            }


        }

    });
});


j('package jui', function() {

    j('import j.unit.Observable;');
    j('import j.unit.*;');

    j('class Component', {

        constructor:function() {

        },
        show:function() {
            console.log("good");
        }

    });

    j('class Container extends Component implements Observable', function(jsuper, ob) {

        return {

            constructor:function() {
                jsuper.constructor.call(this);
                ob.constructor.call(this);
            }


        }

    });


});

 

附上实现代码:

 

function j() {
    var def, code;
    def = arguments[0];
    if (arguments.length == 2) {
        code = arguments[1];
    }
    if (J.isArray(def)) {
        def = def.join(' ');
    }
    var defs = def.replace(/\s{1,}/g, ' ').split(/\s/);
    var l = defs.length;
    if (l % 2 != 0) {
        throw new Error("[jjava] def error");
    }
    var args = [];
    for (var i = 0; i < l; i += 2) {
        switch (defs[i]) {
            case "package":
                return jpackage.call(this, defs[i + 1], code);
            case "import":
                return jimport.call(this, defs[i + 1]);
            case "class":
                args[0] = defs[i + 1];
                break;
            case "extends":
                args[1] = defs[i + 1];
                break;
            case "implements":
                args = args.concat(defs[i + 1].replace(/\s/).split(","));
                break;
        }
    }
    args.push(code);

    return jclass.apply(this, args);

}
 其中的 jpackage,jimport,jclass 请看 http://openxtiger.iteye.com/blog/1708715

 

2
3
分享到:
评论

相关推荐

    aip-java-sdk-4.2.0.zip_aip-java_aip-java-sdk_aip-java-sdk 4.2.0_

    这个SDK允许开发者通过Java语言来调用AIP提供的各种服务,如图像识别、语音识别等人工智能功能。"aip-java"和"aip-java-sdk"是与SDK相关的标签,表示这是与AIP相关的Java开发工具包。"aip-java-sdk_4.2.0"进一步确认...

    基于Java的J-IM轻量级高性能即时通讯系统设计源码

    本源码项目是基于Java的J-IM轻量级高性能即时通讯系统设计,包含278个文件,主要使用Java、HTML、Shell和JavaScript编程语言。该项目旨在降低即时通讯门槛,快速打造低成本接入在线IM系统。系统通过极简洁的消息格式...

    aip-java-sdk-4.13.0.zip

    这个SDK使得Java开发者能够方便地在自己的应用程序中集成和调用AIP的相关服务,比如图像识别、语音识别、自然语言处理等。 描述中提到的四个jar文件分别是: 1. **aip-java-sdk-4.13.0.jar**:这是主要的AIP Java ...

    aip-java-sdk-4.2.0

    它的存在意味着AIP Java SDK可能使用Log4j来输出调试信息和错误日志。 2. **aip-java-sdk-4.2.0.jar**:这是核心的AIP Java SDK库文件,包含了所有用于与百度AI平台交互的类和方法。开发者需要引入这个jar文件到...

    开发帮助chm(html-javascript-jsp-spring-struts--log4j-hibernate)

    除此之外,"Java.chm"涵盖了Java语言的基本概念和API,"JavaScriptHelp_cn.chm"为JavaScript的中文帮助文档,"Structs.CHM"可能涉及Struts框架的使用,"j2se1.5中文api.chw"提供了Java 2 Standard Edition 1.5的中文...

    aip-java-sdk-4.10.0.zip_aip-java-sdk_语音识别

    1. log4j-1.2.17.jar:这是Apache Log4j的一个版本,是一个广泛使用的日志记录框架,用于在Java应用程序中记录各种级别的日志信息。在AIP Java SDK中,Log4j用于收集和记录SDK在运行时的调试信息和错误,帮助开发者...

    fckeditor2.6.3b+fckeditor-java-2.4+slf4j-1.5.2

    这款编辑器支持多种编程语言,包括Java,能够方便地集成到JSP(Java Server Pages)环境中,为Web应用提供丰富的文本编辑体验。本文将详细介绍FCKeditor的特性、使用教程以及与Java和JSP的整合方法。 首先,...

    aip-java-sdk-4.8.0.zip_Java 8_SDK

    这个SDK主要用于帮助开发者在Java环境中集成和调用百度提供的各种AI服务,如自然语言处理、图像识别、语音识别等。"Java 8 SDK"标签表明它与Java 8兼容,意味着它可能利用了Java 8的一些特性和API。 描述中的"sdk...

    green-grass-flat-horizontal-banners-set_J_java_javascript_jsp_

    标题中的“green-grass-flat-horizontal-banners-set_J_java_javascript_jsp_”暗示这是一组与Java、JavaScript和JSP相关的横幅设计素材,可能用于宣传或教学目的,特别是与IT开发相关的活动。这些横幅可能包含绿色...

    aip-java-sdk-4.3.2.zip_android GPIO

    这个SDK可能是由AIP公司提供的,允许开发者通过Java编程语言来操控Android设备的GPIO(General Purpose Input/Output)接口。GPIO接口允许硬件设备与Android系统进行直接交互,比如控制外部传感器或执行器的状态。 ...

    Forum-java-source-code.zip_forum-java

    这表明项目主要使用Java语言来实现论坛功能,可能涉及的技术栈包括Servlet、JSP、Spring MVC、Hibernate等Java Web框架,也可能包含JavaScript、HTML、CSS等前端技术。 在【压缩包子文件的文件名称列表】"论坛java...

    JAVA-复习终结版.doc

    JAVA-复习终结版.doc文档涵盖了Java和JavaScript两个主要的编程语言相关知识点,以及与Web开发相关的HTML、XML解析和JSP技术。以下是这些知识点的详细解释: 1. **HTML表单元素**: - `&lt;INPUT&gt;`标签用于创建各种...

    rados-java-ceph的web实现

    "rados-java-ceph的web实现"是指使用Java语言来构建一个Web接口,以便于管理和操作Ceph集群。 首先,我们要理解Ceph的核心组件。Ceph主要包括三个主要部分:RADOS( Reliable Autonomic Distributed Object Store)...

    java-人事管理系统-任务书框架

    - **编程语言**:Java - **辅助技术**:JavaScript - **技术栈**:SSH (Struts + Spring + Hibernate) - **前端开发**:Dreamweaver 8 #### 四、系统开发流程 1. **需求分析阶段**(2月20日~2月23日) - 明确项目...

    olap4j-0.9.7.309-JS-3.jar

    《olap4j-0.9.7.309-JS-3.jar:Java与JavaScript在OLAP分析中的桥梁》 OLAP4j-0.9.7.309-JS-3.jar是一个针对Java和JavaScript环境的库,主要用于支持在线分析处理(Online Analytical Processing, OLAP)。OLAP4j是...

    Java - Servlet and JSP Quick Reference

    - **与JavaScript比较:**JSP是服务器端技术,拥有更丰富的编程语言特性。 - **与静态HTML比较:**JSP支持动态特性,可以动态生成HTML内容。 #### 免费的Servlet和JSP软件 - **Tomcat:**Apache Tomcat是最常用的...

    清华大学出版社-郭克华版-Java-Web课后习题答案.rar

    这本书深入浅出地讲解了如何使用Java语言进行Web应用程序的开发,涵盖了从基础的Servlet、JSP到更高级的框架如Struts、Spring等关键知识点。课后习题是检验学习成果、提升编程能力的重要环节,因此,提供的"清华大学...

    l2j-server-script-engine_l2j-server_script-engine_

    脚本引擎通常基于一种或多种特定的脚本语言,例如Lua、JavaScript等,这些语言具有轻量级、易读写、解释执行的特点,便于快速迭代和调试。在"l2j-server-script-engine"中,开发者可以利用这些脚本语言的能力,实现...

    jwt简单的介绍和了解

    2. **跨域支持**:因为JWT是JSON格式,它可以方便地在不同的应用和服务器之间传递,支持多种编程语言,如Java、JavaScript、Node.js和PHP等。 3. **安全性**:通过数字签名,JWT可以确保数据在传输过程中的完整性,...

    P362-372 0361- 0371 -韩顺平Java-项目-房屋出租系统

    《韩顺平Java-项目-房屋出租系统》是针对初学者和进阶者的一个实践性教学项目,旨在帮助学习者掌握Java编程语言在实际开发中的应用。该项目专注于构建一个房屋出租系统,涵盖了从需求分析、设计到编码实现的全过程,...

Global site tag (gtag.js) - Google Analytics