`
ytrgmj
  • 浏览: 21827 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

像import java类一样 import js类

阅读更多
写js类,依赖的管理是一个比较麻烦的事情,如果a.js依赖b.js,而b.js又使用了c.js的代码,那么我们在客户程序中必须把a.js,b.js,c.js统统用script标签导入。如果c.js发生更改,又实用了d.js,那么所有包含a.js,b.js,c.js的页面统统需要修改。
而在java中,我们import一个a.java,不过a.java的依赖项发生怎么样的更改,客户程序只要import a.java就可以了。
根据这个需求,写了个小工具,可以动态加载js。
在TestA.js中定义一个类

Java代码 
var TestA = $createClass('TestA',function(param){ 
    this.value = param; 
    this.name = "testA"; 
}); 

TestA.prototype.test = function(){
alert(this.name+":" + this.value);
}
在TestB.js中写一个类TestB.js继承TestA

Java代码 
$import('TestA');  //导入TestA 
var TestB = $createClass('TestB',function(param){ //继承TestA 
    this.TestA(param); //运行父类的构造函数 
    this.name = "testB"; 
},'TestA'); 

然后在TestC.js中写一个类继承TestB
Java代码 
$import('TestB');//只要导入TestB就可以了,不需要导入TestA 
var TestC = $createClass('TestC',function(param){ //继承TestB 
    this.TestB(param); //运行父类的构造函数 
    this.name = "testC"; 
},'TestB'); 


html文件中的代码:
Java代码 
<body> 
        <script> 
        $import('TestC');//只要导入TestC,TestB和TestA系统会导入。 
        $ready(function(){ 
            var obj = new TestC('test'); 
            obj.test(); 
        }); 
        </script> 
    </body> 

系统就会打印出:
testC:test

这个工具的难点是js的加载是完全异步的,当testC被加载后,他的父类TestB和TestA实际不存在,系统会让他继承一个空白类,当TestB和TestA加载进来后,系统会检查他们有哪些子类,然后把父类的函数和属性赋值给子类。用这种方法也可以动态加载普通的js库,比如jquery,你可以写个$import('jquery'),当然,jquery的类是不能被你继承的。

代码见附件
  • SW.rar (3.4 KB)
  • 下载次数: 5
分享到:
评论

相关推荐

    JAVA 程序 源代码 import java.applet.*;import java.awt.*

    `import`语句是Java中用于引入库或包的机制,以便能够使用其中的类和方法。在给定的描述中,没有更多的具体信息,所以我们将基于这两个导入语句来探讨相关的Java知识点。 1. **Java Applet**: `java.applet.*` 指的...

    js调用java类的方法

    本文将深入探讨如何使用JavaScript调用Java类的方法,以实现客户端和服务器端的有效沟通。 首先,理解JavaScript(JS)和Java的运行环境差异至关重要。JS主要在浏览器环境中运行,负责处理用户交互和动态内容,而...

    Java认证:Java中import使用.doc

    因此,import 语句的功能到此为止,它不像 #include 一样,会将档案内容载入进来。import 只是请编译器帮你打字,让我们在编程时不需要每次都输入完整的类名。 Java 中的 import 语句可以提高编程效率,避免类名...

    java 混淆、加密js代码

    Java混淆和加密JavaScript代码是保护Web应用程序源代码安全的重要手段,尤其是在公开发布或者与第三方共享时,能够防止恶意用户分析和篡改代码。本压缩包包含的资源专注于这个主题,让我们详细了解一下相关知识点。 ...

    javaimport、package作用与用法.doc

    Java import 和 package 的作用与用法 Java programming 语言中的 package 和 import 机制是非常重要的概念,它们在 Java 编程中扮演着重要的角色。下面我们来详细了解一下 package 和 import 的作用和用法。 首先...

    Java直接运行JS代码

    在Java编程环境中,有时我们需要与JavaScript交互,例如执行一些动态脚本或者利用JavaScript库的功能。Java提供了这样的能力,让我们可以直接在Java程序中运行JS代码。这主要得益于Oracle公司在Java 6版本引入的一个...

    Java中将Json文件解析为Java类

    在Java开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,广泛用于前后端数据传输。而将JSON数据解析成Java类是常见的处理方式,这使得数据可以直接映射到Java对象上,便于进一步的操作和...

    Java零基础-package和import.md

    ### Java零基础-package和import详解 #### 一、引言 在Java编程中,随着项目的逐渐扩大,良好的代码组织和管理变得尤为重要。`package` 和 `import` 关键字是Java语言提供的两种基本机制,用于帮助开发者更好地...

    效率非常快的java读取javascript,附带源码和js.jar

    6. `js.jar`:这是Rhino的库文件,包含了运行JavaScript所需的类和接口,如`org.mozilla.javascript.*`包下的类。 在使用Rhino时,开发者通常会创建一个`ScriptEngineManager`实例,然后通过`getEngineByName(...

    Java语言-动态编译代码并热加载类

    然而,这里标签中提到的"js热加载"可能是指JavaScript与Java的交互,比如使用JavaScript引擎如Nashorn(Java 8)或GraalVM在Java应用中执行JavaScript代码,并实现在运行时更新JavaScript逻辑。尽管Nashorn在Java 15...

    base64,java与JavaScript实现

    其中`BASE64Controller.java`是关键的Java类,负责处理Base64相关的请求。 **BASE64Controller.java** ```java package org.crypto.controller; import java.io.UnsupportedEncodingException; import java.util....

    java调用js方法.pdf

    Java调用JavaScript方法是跨语言交互的一个重要场景,特别是在服务器端需要利用JavaScript的灵活性和库资源时。在Java中,自JDK 1.6版本起,通过JSR 223(Java Scripting API)提供了对脚本语言的支持,包括...

    java通过js上传文件

    简单的利用java与js实现文件上传 package com.fendou.myString; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.Iterator; import javax.servlet....

    JAVA JSON;String 转换为 java类

    总之,Java中将JSON字符串转换为Java实体类是通过JSON反序列化实现的,主要借助于像Jackson这样的库。理解JSON与Java对象之间的映射关系,以及如何处理嵌套结构、可选字段和数组,是进行有效转换的关键。熟练掌握...

    javaSE的import要点和packet下类的编译和运行.doc

    Java SE的`import`语句是程序中必不可少的一部分,它允许我们引用其他包中的类或接口,以便在当前代码中使用。在Java编程中,所有类都属于某个包(package),包是组织类的一种方式,提供了命名空间和访问控制。 **...

    java实现js中eval功能

    在Java中,这可以通过编译和执行Java的`ScriptEngine`来实现,特别是`JavaScript`引擎,如`Nashorn`(在Java 8中)或`Rhino`(在更早的版本中)。以下是一个使用`Nashorn`引擎的例子: ```java import javax.script...

    JS-SHA1.rar_java SHA-1_js_js java sha

    本资料"JS-SHA1.rar"主要关注如何在Java和JavaScript环境中实现SHA-1加密算法。 SHA-1(Secure Hash Algorithm 1)是由美国国家安全局设计的,它能够产生一个160位(20字节)的散列值,通常表示为40个十六进制数字...

Global site tag (gtag.js) - Google Analytics