|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
实不相瞒,Java是我见过的执行效率最低的程序设计语言,前不久在CSDN论坛上有个评测,计算9999的阶乘,同样的循环算法,Java的耗时是.NET的5倍。asp.net|javascript JavaScript是一门十分壮大的基于工具(ObjectBased)的言语,可是劈面向工具(ObjectOriented)的撑持还存在一些不敷,同时JavaScript内建的类库也对照复杂,乃至缺少统统很经常使用的功效。ASP.NETAtlas在运转时扩大了JavaScript,年夜年夜加强了它的面向工具撑持才能,并扩大了一些开辟经常用的操纵。
我参考了一下Atlas.js文件,总结出Atlas对JavaScript有以下扩大。某些中央有所漏掉或毛病,还请列位包容并斧正。
String工具的扩大
StringString.ltrim()
移除原String开首部分一切的空格,并前往一个新String工具。
StringString.rtrim()
移除原String开头部分一切的空格,并前往一个新String工具。
StringString.trim()
移除原String开首和开头部分一切的空格,并前往一个新String工具。
BooleanString.endsWidth(strEnd)
该String是不是以传进的String停止。
BooleanString.startsWith(strStart)
该String是不是以传进的String入手下手。
StringString.format(args1,args2,.)
相似于C#中的String.Format(),被操纵的String中的{n}将被取代为响应的第n个参数,并前往一个新String工具。
StringString.removeSpaces()
移除原String中的一切空格,并前往一个新String工具。
StringString.removeExtraSpaces()
将原String中一连的空格置换成单一的空格(包含回车),并前往一个新String工具。
StringString.removeSpaceDelimitedString(str)
将原String中的指订单词(被空格分隔的笔墨片段)移除,并前往一个新String工具。这个办法能够用在删除包括多个class称号DOM元素的某个class称号时分。
Array工具的扩大
voidArray.queue(objValue)与voidArray.add(objValue)
将指定的objValue拔出到该Array的末了。
voidArray.addRange(rangeArray)
将指定的rangeArray到场该Array的尾部。
BooleanArray.contains(objValue)与BooleanArray.exists(objValue)
前往布尔值,代表该Array是不是包括objValue项目。
ArrayArray.clone()
前往该Array的一个浅拷贝正本。
voidArray.insert(index,objValue)
将指定的objValue拔出到该Array的index地位。
ObjectArray.dequeue()
移除并前往该Array中的第一个条目。
ObjectArray.removeAt(index)
移除并前往该Array中指定的index的条目。
BooleanArray.remove(objValue)
移除该Array中指定的objValue条目,前往布尔值代表该条目是不是存在并被乐成移除。
ArrayArray.parse(string)
将传进的以string暗示的Array剖析成Array。
voidArray.clear()
清空该Array中的一切条目。
IntegerArray.get_length()
前往该Array的条目数,同等于Array.length。
ObjectArray.getItem(index)
前往该Array中指定index的条目。
Date工具的扩大
StringDate.toFormattedString(stringFormat)
按照输出的stringFormat格局化并输入该Date工具(formatstring太多了……懒得写了,必要的间接看Atlas.js中748-871行好了)。
Number工具的扩大
NumberNumber.parse(string)
实验剖析传进的stirng为Number。
StringNumber.toFormattedString(stringFormat)
按照输出的stringFormat格局化并输入该Number工具(formatstring仍是太多了……懒得写了,必要的间接看Atlas.js中935-1024行)。
Sys.StringBuilder类
相似于C#中的StringBuilder:
varsb=newSys.StringBuilder();
sb.append("<div>");
sb.appendLine("alineoftext");
sb.append("</div>");
someDOMElem.innerHTML=sb.toString();
面向工具的撑持
界说能够被承继的基类
BaseClass=function()
{
//object
}
BaseClass.registerClass("BaseClass");
承继类
DerivedClass=function()
{
//Callbaseconstructors
//The2ndargumentisanarrayyoucanusetopassarguments
DerivedClass.intializeBase(this,arguments);
}
DerivedClass.registerClass("DerivedClass","BaseClass");
多重承继
MultipleInherit=function()
{
MultipleInherit.intializeBase(this,arguments);//bootstrap
//object
}
MultipleInherit.registerClass("MultipleInherit",["BaseClass","DerivedClass"]);
界说可被覆写(override)的办法
BaseClass=function()
{
//object
this.initialize=function()
{
}
BaseClass.registerBaseMethod(this,"initialize");
}
BaseClass.registerClass("BaseClass");
挪用基类被覆写的办法
DerivedClass=function()
{
DerivedClass.initializeBase(this,arguments);//bootstrap
this.initialize=function()
{
DerivedClass.getBaseMethod(this,"BaseClass","initialize").call(this);
//Topassargumentstobaseclass:
//.call(this,args1,args2,args3)
}
}
DerivedClass.registerClass("DerivedClass",["Atlas.Bindings.Base","BaseClass"]);
称号空间
registerNamespace("Web.Utility");
//ImplementWebUtility
registerNamespace("Web.Performance");
//ImplementPerformance
界说Enum范例
vartheEnum=Type.createEnum("name1","name2");
for(varstrItemsintheEnum.getValues())
{
}
界说Flag范例
vartheFlags=Type.createFlags("name1",value1,"name2",value2,);
刚刚打开这篇专题,猛然见到HAL9000发表的《对于大型公司项目平台选择j2ee的几层认识》系列,深受启发。 |
|