写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的类是不能被你继承的。
代码见附件
分享到:
相关推荐
`import`语句是Java中用于引入库或包的机制,以便能够使用其中的类和方法。在给定的描述中,没有更多的具体信息,所以我们将基于这两个导入语句来探讨相关的Java知识点。 1. **Java Applet**: `java.applet.*` 指的...
本文将深入探讨如何使用JavaScript调用Java类的方法,以实现客户端和服务器端的有效沟通。 首先,理解JavaScript(JS)和Java的运行环境差异至关重要。JS主要在浏览器环境中运行,负责处理用户交互和动态内容,而...
因此,import 语句的功能到此为止,它不像 #include 一样,会将档案内容载入进来。import 只是请编译器帮你打字,让我们在编程时不需要每次都输入完整的类名。 Java 中的 import 语句可以提高编程效率,避免类名...
Java混淆和加密JavaScript代码是保护Web应用程序源代码安全的重要手段,尤其是在公开发布或者与第三方共享时,能够防止恶意用户分析和篡改代码。本压缩包包含的资源专注于这个主题,让我们详细了解一下相关知识点。 ...
Java import 和 package 的作用与用法 Java programming 语言中的 package 和 import 机制是非常重要的概念,它们在 Java 编程中扮演着重要的角色。下面我们来详细了解一下 package 和 import 的作用和用法。 首先...
在Java编程环境中,有时我们需要与JavaScript交互,例如执行一些动态脚本或者利用JavaScript库的功能。Java提供了这样的能力,让我们可以直接在Java程序中运行JS代码。这主要得益于Oracle公司在Java 6版本引入的一个...
在Java开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,广泛用于前后端数据传输。而将JSON数据解析成Java类是常见的处理方式,这使得数据可以直接映射到Java对象上,便于进一步的操作和...
### Java零基础-package和import详解 #### 一、引言 在Java编程中,随着项目的逐渐扩大,良好的代码组织和管理变得尤为重要。`package` 和 `import` 关键字是Java语言提供的两种基本机制,用于帮助开发者更好地...
6. `js.jar`:这是Rhino的库文件,包含了运行JavaScript所需的类和接口,如`org.mozilla.javascript.*`包下的类。 在使用Rhino时,开发者通常会创建一个`ScriptEngineManager`实例,然后通过`getEngineByName(...
然而,这里标签中提到的"js热加载"可能是指JavaScript与Java的交互,比如使用JavaScript引擎如Nashorn(Java 8)或GraalVM在Java应用中执行JavaScript代码,并实现在运行时更新JavaScript逻辑。尽管Nashorn在Java 15...
其中`BASE64Controller.java`是关键的Java类,负责处理Base64相关的请求。 **BASE64Controller.java** ```java package org.crypto.controller; import java.io.UnsupportedEncodingException; import java.util....
Java调用JavaScript方法是跨语言交互的一个重要场景,特别是在服务器端需要利用JavaScript的灵活性和库资源时。在Java中,自JDK 1.6版本起,通过JSR 223(Java Scripting API)提供了对脚本语言的支持,包括...
简单的利用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字符串转换为Java实体类是通过JSON反序列化实现的,主要借助于像Jackson这样的库。理解JSON与Java对象之间的映射关系,以及如何处理嵌套结构、可选字段和数组,是进行有效转换的关键。熟练掌握...
Java SE的`import`语句是程序中必不可少的一部分,它允许我们引用其他包中的类或接口,以便在当前代码中使用。在Java编程中,所有类都属于某个包(package),包是组织类的一种方式,提供了命名空间和访问控制。 **...
在Java中,这可以通过编译和执行Java的`ScriptEngine`来实现,特别是`JavaScript`引擎,如`Nashorn`(在Java 8中)或`Rhino`(在更早的版本中)。以下是一个使用`Nashorn`引擎的例子: ```java import javax.script...
本资料"JS-SHA1.rar"主要关注如何在Java和JavaScript环境中实现SHA-1加密算法。 SHA-1(Secure Hash Algorithm 1)是由美国国家安全局设计的,它能够产生一个160位(20字节)的散列值,通常表示为40个十六进制数字...