在JavaScript中使用Java、JavaScript核心

一、在Java中使用JavaScript

Java 是强类型的静态语言,即所有的代码在运行之前都必须先进行严格的类型检查并编译为 JVM 字节码。这样做虽然保证了安全与性能,但却牺牲了灵活性。而那些动态语言(JavaScript 、Python 等)却可以在程序运行时改变程序的结构以及变量类型,因此更具灵活性。

JSObject类

表示 JScript 中的对象。 此类属于对象和函数类别。
此 API 支持产品基础结构,不能在代码中直接使用。

所有交互都是由netscape.javascript.JSObject 类的实例处理。
遇到需要导入netscape.javascript.JSObject 这个类时,可以到java的jre下找到plugin.jar;
并把该jar加到classpath中即可。(%JAVA_HOME%/jre/lib/plugin.jar)

public final class JSObject extends Object{
	public static JSObject getWindow(java.applet.Applet. applet);
	public Object GetMember(String, name)  ;//读对象的属性
	public Object GetSlot(int index)  ;//读数组的元素
	public Object setMember(string name ,Object value) ; //设置对象属性
	public Object setSlot(int index,Object value)  ;//设置数组的元素
	public Object removeMember(String name)        ;//删除属性
	public Object call(String methodName,Object args[])        ;//调用方法
	public Object eval(String s)        ;//计算字符串的值
	public Object toString()        ;//转换成字符串

JavaScript核心

1、可用性
可用性信息说明了该项目(类、方法和属性)从哪个版本的Netscape JavaScript解释器和Microsoft JScript解释器开始引入。如果项目在 ECMAScript中进行标准化,则说明引入的是哪个标准版本。

2、从…继承/覆盖
如果一个类继承了超类,或一个方法覆盖了超类中的方法,该信息将显示在这里。

3、构造函数
如果条目是一个类,通常具有构造函数,构造函数是一种方法,本部分说明如何使用构造方法 创建类的实例。

4、语法
函数、方法和属性一般都有自己的用法,本部分详细显示该条目的具体用法。
5、参数
本部分详细说明语法中所用参数的详细说明。
返回值
如果是构造函数、方法或函数,会有返回值,本部分显示该条目的返回值。
6、抛出
如果是函数、方法或构造函数,则可以会抛出异常,本部分显示条目可能抛出异常的类型。
7、属性
属性详细列举了类所定义的属性,以及每个属性的解释。
8、方法
方法详细列举了类所定义的属性,以及每个方法的解释。

arguments[]

其实Javascript并没有重载函数的功能,但是Arguments对象能够模拟重载。Javascrip中每个函数都会有一个Arguments对象实例arguments,它引用着函数的实参,可以用数组下标的方式"[]"引用arguments的元素。arguments.length为函数实参个数,arguments.callee引用函数自身。

1、特性

1)arguments对象和Function是分不开的。

2)因为arguments这个对象不能显式创建。

3)arguments对象只有函数开始时才可用。

2、使用方法

虽然arguments对象并不是一个数组,但是访问单个参数的方式与访问数组元素的方式相同

arguments[0],arguments[1]...arguments[n];
function test() {
        var s = "";
        for (var i = 0; i < arguments.length; i++) {
            alert(arguments[i]);
            s += arguments[i] + ",";
        }
        return s;
}
test("name", "age");

//输出结果:name,age

arguments.callee

属性包含当前正在执行的函数。

callee 是 arguments 对象的一个属性。它可以用于引用该函数的函数体内当前正在执行的函数。这在函数的名称是未知时很有用,例如在没有名称的函数表达式 (也称为“匿名函数”)内。

function factorial(num){
	if(num <= 1){
    	return 1;
	}else{
	    return num * arguments.callee(num-1);
	}
}
var trueFactorial = factorial;
alert(trueFactorial(5));    //120    

factorial = function() {
	return 0;
}                
alert(trueFactorial(5));// 120 如果没有使用arguments.callee,将返回0

arguments.length

表示的是实际上向函数传入了多少个参数

function adder(base, /*, n2, ... */) {
  base = Number(base);
  for (var i = 0; i < arguments.length; i++) {
    base += Number(arguments[i]);
  }
  return base;
}

Array []

用于在单个的变量中存储多个值。

1、创建 Array 对象的语法:
new Array();
new Array(size);
new Array(element0, element1, …, elementn);
2、参数
参数 size 是期望的数组元素个数。返回的数组,length 字段将被设为 size 的值。
参数 element …, elementn 是参数列表。当使用这些参数来调用构造函数 Array() 时,新创建的数组的元素就会被初始化为这些值。它的 length 字段也会被设置为参数的个数。

3、返回值

返回新创建并被初始化了的数组。

如果调用构造函数 Array() 时没有使用参数,那么返回的数组为空,length 字段为 0。

当调用构造函数时只传递给它一个数字参数,该构造函数将返回具有指定个数、元素为 undefined 的数组。

当其他参数调用 Array() 时,该构造函数将用参数指定的值初始化数组。

当把构造函数作为函数调用,不使用 new 运算符时,它的行为与使用 new 运算符调用它时的行为完全一样。

4、Array []方法
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值