四数组管理
数组共享问题稍微复杂一点虽然数组也象其它变量一样可以在不同语言脚本之间共享但必须注意兼容方面的问题
VBScript数组在JScript下可以用VBScript的符号引用即用myArray()引用数组元素而不是JScript的数组元素引用符号myArray[]此外还可以使用一个特殊的JScript对象——VBArray对象将VBScript数组转换为JScript数组下面的代码从VBScript数组myVBArray创建JScript数组myJSArray
var Temp = new VBArray(myVBArray)
var myJSArray
myJSArray = TemptoArray()
上述代码首先创建一个临时的VBArray对象然后使用它的toArray()方法将自己转换为JScript数组此后就可以象普通JScript数组一样使用myJSArray如myJSArray[]但应当注意的是toArray()方法将把一个多维的VBArray转换为一维的JScript数组
从VBScript中引用JScript数组更为复杂虽然在VBScript中我们可以直接访问JScript数组相关的方法和属性但没有直接访问JScript数组的单个元素的方法也就是说我们可以在VBScript脚本中读取JScript数组的长度属性如下所示
x = myJSArray
length
但无法直接读取该数组的单个元素下面的VBScript代码是不正确的
x = myJSArray(
)
解决该问题的一个可行的方法是执行一个转换过程如下面的代码所示此处假定VBScript是缺省的脚本语言
< %
Dim Temp
Dim myVBArray
Temp = myJSArrayjoin( )
myVBArray = Split(Temp )
%>
此处的JScript join()方法将数组myJSArray元素转换到一个以逗号为分割符的字符串VBScript Split()函数将字符串转换为VBScript数组注意这里我们是在VBScript环境下调用JScript的join方法依照此例我们可以通过自定义VBScript函数来模拟JScript的VBArray对象的toArray()方法以实现JScript数组到VBScript数组的转换
五小结
在同一个ASP工程内灵活选用不同脚本语言具有许多优点这些脚本之间的交互能力更为开发者集成不同语言所提供的内置函数和其它功能带来了更多的机会同时也使得实现既可用于VBScript也可用于JScript环境的通用脚本库成为可能
[] []