弃VBScript而选Jscript的八大理由
理由四:JScript是面向对象的
JScript是作为一个面向对象语言而建立起来的。内置的数据库类型(诸如字符串和数字)本身都是具有方法的对象。例如,数字类型有一个toString方法,来将数字作为一个文本返回,而文本类型则有toUpperCase和toLowerCase方法来以大写或小写方式返回文本。
使用它可以很容易以最少编码方式来创建你自己的对象,看一下下面的例子:
var options = { path: "", recurse: false };
这简单的一行代码就创建了一个没有名称的对象,它包含两个属性,并对属性进行了初始化。
在VBScript中你也可以创建一个用户定义的对象,但是它要复杂的多。这个语言要求你必须创建一个类,并初始化这个类,如下面代码所示:
Class OptionsClass Public Path Public Recurse Private Sub Class_Initialize() Path = "" Recurse = False End Sub End Class Dim Options Set Options = New OptionsClass ' Creates an instance of the class
JScript的面向对象特点使这变成一个简单的任务;VBScript则要求编写更多的代码来完成同样的事情。
JScript还可以让你创建一个被命名的对象(这在VBScript中强制要求的);如果你需要多个这种对象的话,你可以简单的定义一个构造函数来定义这个对象。例如:
function optionsObject(path, recurse) { this.path = path; this.recurse = recurse; } var options = new optionsObject("c:\\winnt", true); // 创建一个实例对象
JScript使用基于原型来进行继承,而不是基于类。使用一个对象的prototype属性,你可以扩展一个对象的行为,增加一个方法到它的prototype属性中。例如:
Array.prototype.exists = function(item) { for (var n = 0; n < this.length; n++) if (item == this[n]) return true; return false; }
以上代码增加了exists方法到这个Array对象中。下面是一个你如何使用这个新方法的示例:
var myArray = ["a", "b", "c", "d"]; // 定义一个包含四个元素的数组 var result = myArray.exists("a"); // 返回 true var result = myArray.exists("e"); // 返回 false
从这个例子我们可以看到,JScript语言是多么灵活,无论你自己的或内置的对象,对它们扩展定制的方法是多么简单。
0
相关文章