脚本神话(一)

来源:互联网 发布:七天网络阅卷平台 编辑:程序博客网 时间:2024/05/17 01:05

最近在做一个项目,放下自己所熟悉的.NET,开始用Java...
也许接触并渐渐熟悉新的技术,是一件快乐的事情,不过,在工作中给我震撼最大的却不是Java也不是Hibernate,而是以前被我忽略了的脚本语言——javascript。

对于脚本的喜好,也是有的,比如说Perl,比如说PHP,都是我非常喜欢的...但是,我从来没有想到我会喜欢上javascript,也从来没有想到这个在浏览器中被到处使用也带来各种各样问题的客户端脚本,会是如此的强大和充满魅力。以前总觉得javascript只是一种简单的而且有些混乱的脚本,除了能够给网页添加一些可以向外行人炫耀的“小特效”没有多大的作用,而且这一看似使用方便的解释型语言还会因为浏览器版本的不同而带来各种各样的兼容性问题。由javascript写出来的程序随意的混合着html,也带来各种各样的问题,而且难于阅读,难于调试。但是,这一段时间因为工作需要,不得不开始用它来设计一些小交互,而不是像以前一样为了实现一两个简单的效果而直接在网络上搜索现成的代码。于是,自己开始写程序,开始真正从近处观察、感受和使用javascript,随着实践的深入,和程序的复杂化,渐渐地由一开始的抱怨转向接纳,接着又由接纳转向惊叹,没想到在这个看似混乱简陋的脚本下,竟然有如此丰富的内涵和如此强大又充满魅力的内容。

在实践中,我真正学会了如何使用javascript,才知道作为一个脚本,她并不是混乱和简陋的,她的魅力如何展现,取决于人们如何使用。事实上,作为一个脚本,她的一些功能却相当接近于那些强大的高级语言。她甚至完全能够支持形式良好的OOP,能够实现继承和多态,能够实现事件驱动模型,能够实现范型,而且能够很好地支持XML/DOM等技术。

如果我们能够用优秀的模式和优秀的方法去开发,我们就能用javascript写出非常美的程序代码,实现非常强大的功能。利用她能够和applet交互的特性,甚至可以开发出具有图形交互功能的非常完美的应用程序!

如果再加上Perl弥补客户端脚本读写文件的缺陷,那么,javascript将成为一种完美的开发语言。

她如何表现,取决于你如何使用:

/*formDemo.js*/

function Form1()
{
    //private:
    Form1.prototype.text = "FormDemo"
    Form1.prototype.client = function()
   {

   }
    Form1.prototype.client.width = "600px"
    Form1.prototype.client.heigth = "440px"
    Form1.prototype.button1 = self.button1;
    this.button1.value="OK";
    this.button1.onclick=button1_Click;
    Form1.prototype.button2 = self.button2;
    this.button2.value="Cancel";
    this.button2.onclick=button2_Click;
    self.opener = self;  
   
    Form1.prototype.FormLoad = function()
    {
       alert("Hello world ^^!");
    }
    self.formDemo.onload = this.FormLoad;
}
function button1_Click()
{
     alert("OK");
}
function button2_Click()
{
     self.close();
}
<!--formDemo.html-->
<html>
<head/>
<body  id="formDemo">
<input type="button" name="button1" />
<input type="button" name="button2" />
</body>

<script language="javascript" src="formDemo.js" type="text/javascript">
</script>
<script language="javascript" type="text/javascript" >
 var form1 = new Form1(self);
</script>

</html>

以上是一个类似于C#的WinFrom程序...^^ 定义了两个按钮控件和它们的onclick事件,同时定义了FormLoad()事件(实际上是body的onload事件),这样整个程序是面向对象和事件驱动的...和C#的风格十分相似。

原创粉丝点击