日期:2008-03-24 浏览次数:20602 次
javascript是一门很神奇的言语,灵活,容易学习,而且概念很超前。但是如今似乎被钉死在了浏览器上,其实这个才是javascript被人最大的误解。MS的.net平台提供了全功用的JScript支持,不过这个JScript还是符合ECMA标准的,跟M$对待其他国际标准的态度一样,JScript添加了很多其他能力,好让人不小心就绑死在了windows上。不过没关系,我们这次的主题是写一个.net程序,绑死了也无所谓。谁让我是“向MS投降派”呢,其实我基本上是不跟钱过不去。
安装了.net SDK就默认安装了JScript的编译程序jsc.exe了。在正式使用之前,我们要设置一个集成的编译环境,bigtall用UltraEdit,所以在菜单“高级/工具配置”里边新建了一个命令:菜单项名称为“JScript.net编译”;命令行为C:\Windows\Microsoft.NET\Framework\v2.0.50727\jsc.exe /fast- "%f" ;任务目录为 %p;还要记得把“输出”设置为“输出到列表框”,保存即可。
有了环境之后,我们可以开始编写一些测试代码了。首先创建一个test.js吧,标准的javascript代码:
var arr = ["a","b"]; var obj = {name:"test", value:3.0}; print(arr[0]); print(arr[1]); print(obj.name); print(obj.value); |
执行以下刚才的菜单命令,编译成功。在当前目录下出现了一个test.exe,运转,正常!
如果要编一个完整的程序,恐怕一个文件就不够了,所以我们测试一下多个文件的编译,创建一个mod.js文件,内容如下:
function hello() { this.name = "haha"; } function haha() { print("call haha"); } |
然后我们修正test.js如下:
var arr = ["a","b"]; var obj = {name:"test", value:3.0}; print(arr[0]); print(arr[1]); print(obj.name); print(obj.value); import mod; var t = new hello(); print(t.name); |
不过编译可是有学问了,我们要用手工编译了,进入cmd,输入jsc /fast- mod.js test.js编译出一个mod.exe文件来,运转,通过!但是如果我们用命令jsc /fast- test.js mod.js编译,出来的test.exe就无法运转,究其缘由是找不到mod.js中的东西。这是一个要留意的地方。
由于JScript做了很多扩展,我们要测试一下扩展命令和非扩展之间能否可以互相协作,由于我们要编.net下的程序,免不了要和.net SDK打交道,用扩展当然必要了。于是创建新文件pkg.js,内容如下:
import System; package France.Paris { public class Landmark { static var Tower : String = "Eiffel Tower"; function p() { System.Console.WriteLine({t:"hello from writeline"}.t); } } }; |
然后我们把test.js修正如下: