ASP.NET Atlas對JavaScript的擴充

來源:互聯網
上載者:User

作者:Dflying Chen (http://dflying.cnblogs.com/)

JavaScript是一門非常強大的基於對象(Object Based)的語言,但是對物件導向(Object Oriented)的支援還存在一些不足,同時JavaScript內建的類庫也比較簡單,甚至缺乏一切很常用的功能。ASP.NET Atlas在運行時擴充了JavaScript,大大增強了它的物件導向支援能力,並擴充了一些開發時常用的操作。

我參考了一下Atlas.js檔案,總結出Atlas對JavaScript有如下擴充。某些地方有所遺漏或錯誤,還請各位包涵並指正。

String對象的擴充

  1. String String.ltrim()
    移除原String開頭部分所有的空格,並返回一個新String對象。
  2. String String.rtrim()
    移除原String結尾部分所有的空格,並返回一個新String對象。
  3. String String.trim()
    移除原String開頭和結尾部分所有的空格,並返回一個新String對象。
  4. Boolean String.endsWidth(strEnd)
    該String是否以傳入的String結束。
  5. Boolean String.startsWith(strStart)
    該String是否以傳入的String開始。
  6. String String.format(args1,args2,.)
    類似於C#中的String.Format(),被操作的String中的{n}將被代替為相應的第n個參數,並返回一個新String對象。
  7. String String.removeSpaces()
    移除原String中的所有空格,並返回一個新String對象。
  8. String String.removeExtraSpaces()
    將原String中連續的空格置換成單一的空格(包括斷行符號),並返回一個新String對象。
  9. String String.removeSpaceDelimitedString(str)
    將原String中的指定單詞(被空格分開的文字片斷)移除,並返回一個新String對象。這個方法可以用在刪除包含多個class名稱DOM元素的某個class名稱時候。

Array對象的擴充

  1. void Array.queue(objValue)void Array.add(objValue)
    將指定的objValue插入到該Array的末端。
  2. void Array.addRange(rangeArray)
    將指定的rangeArray加入該Array的尾部。
  3. Boolean Array.contains(objValue)Boolean Array.exists(objValue)
    返回布爾值,代表該Array是否包含objValue項目。
  4. Array Array.clone()
    返回該Array的一個淺拷貝副本。
  5. void Array.insert(index, objValue)
    將指定的objValue插入到該Array的index位置。
  6. Object Array.dequeue()
    移除並返回該Array中的第一個條目。
  7. Object Array.removeAt(index)
    移除並返回該Array中指定的index的條目。
  8. Boolean Array.remove(objValue)
    移除該Array中指定的objValue條目,返回布爾值代表該條目是否存在並被成功移除。
  9. Array Array.parse(string)
    將傳入的以string表示的Array解析成Array。
  10. void Array.clear()
    清空該Array中的所有條目。
  11. Integer Array.get_length()
    返回該Array的條目數,等同於Array.length。
  12. Object Array.getItem(index)
    返回該Array中指定index的條目。

Date對象的擴充

  1. String Date.toFormattedString(stringFormat)
    依照輸入的stringFormat格式化並輸出該Date對象(format string太多了……懶得寫了,需要的直接看Atlas.js中748-871行好了)。

Number對象的擴充

  1. Number Number.parse(string)
    嘗試解析傳入的stirng為Number。
  2. String Number.toFormattedString(stringFormat)
    依照輸入的stringFormat格式化並輸出該Number對象(format string還是太多了……懶得寫了,需要的直接看Atlas.js中935-1024行)。

Sys.StringBuilder類

類似於C#中的StringBuilder:

var sb = new Sys.StringBuilder();
sb.append("<div>");
sb.appendLine("a line of text");
sb.append("</div>");
someDOMElem.innerHTML = sb.toString();

物件導向的支援

定義可以被繼承的基類

BaseClass = function()
{
    // object
}
BaseClass.registerClass("BaseClass");

繼承類

DerivedClass = function()
{
       // Call base constructors
       // The 2nd argument is an array you can use to pass arguments
       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);
              // To pass arguments to base class:
              // .call(this,args1,args2,args3)
       }
}
DerivedClass.registerClass("DerivedClass",["Atlas.Bindings.Base","BaseClass"]);

名稱空間

registerNamespace("Web.Utility");
// Implement Web Utility
registerNamespace("Web.Performance");
// Implement Performance

定義Enum類型

var theEnum = Type.createEnum("name1","name2");
for (var strItems in theEnum.getValues())
{
}

定義Flag類型

var theFlags = Type.createFlags("name1",value1,"name2",value2,);

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.