如何理解ECMAScript基礎類以及Asp.netAjax對類

這篇文章主要講解了“如何理解ECMAScript基礎類以及Asp.net Ajax對類”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何理解ECMAScript基礎類以及Asp.net Ajax對類”吧!

成都創(chuàng)新互聯(lián)主營永豐網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,成都App定制開發(fā),永豐h5重慶小程序開發(fā)公司搭建,永豐網(wǎng)站營銷推廣歡迎永豐等地區(qū)企業(yè)咨詢

“Everything is Object”,在面向?qū)ο蟮木幊陶Z言中誰都知道這句話,但對我來說這是一種感覺,只可意會很難言傳。由于我對JavaScript和薄弱,所以在看Asp.net Ajax類庫的同時也翻出了ECMAScript順便學習學習。在.NET中所有類都是繼承自Object,同樣在JS中也一樣說有都繼承Object,因此如果對Object進行了擴展,那所有繼承Object類的后代肯定會擁有祖先的血緣。

既然開始學習JavaScript那就順便在這里提一提他的原始數(shù)據(jù)類型,在JS中有5個原始數(shù)據(jù)類型(Undefined、Null、Boolean、Number、String),可以通過typeof來判斷變量和值的數(shù)據(jù)類型

1.        Undefined: 當變量被聲明但沒有被初始化,或函數(shù)沒有明確返回一個值的時候,該變量或函數(shù)即為 Undefined 類型,是Null類型的一種特性。

2.        Null: 當一個對象的值不存在時,該對象返回null。

3.        Boolean:一看就知道,一男一女true/false,值得注意的是0不等于false,但是可以轉(zhuǎn)化為false。

4.        Number:可以定義32位整型數(shù)據(jù)或64位浮點型數(shù)據(jù)。從網(wǎng)上的一些資料知道,浮點數(shù)在未被計算之前是以String類型存儲(不知道是真是假)。當浮點類型數(shù)據(jù)很大或很小時(可以前后移動六位),將使用E表示法來表示浮點數(shù)據(jù),最大可以存儲17位數(shù)據(jù)。另外,isFinite()方法可以判斷一個數(shù)值是否有限,isNaN()方法可以判斷一個數(shù)據(jù)是非數(shù)字類型。通過parseInt()和parseFloat()可以將其他類型轉(zhuǎn)化為數(shù)字類型,如果轉(zhuǎn)化不成功則返回NaN(Not a Number)。

5.        String:這是一個唯一沒有大小限制的原始類型,其他類型可以通過toString()轉(zhuǎn)化為String類型,值得一提的是數(shù)字轉(zhuǎn)化為String類型可以加入2.8.16作為參數(shù)已輸出二進制,八進制和十六進制的字符串。

下面我們來看一下Object類型,通過var obj=new Object();可以申明一個對象。同.NET中的Object一樣,它是所有類的基類。

它具有兩個屬性:constructor(相當于.NET中的構(gòu)造函數(shù))建議一個對象函數(shù)引用,對于Object類而言,該引用指向本地Object()方法。Prototype對象里prototype對象的一個引用值,通過這個屬性可以反射每個對象中的prototype擴展的屬性和方法,在Asp.net Ajax中也是利用這個屬性類擴展和反射類的。

hasOwnProperty(property)—判斷property屬性是否存在于對象中,property數(shù)據(jù)類型為string;isPrototypeOf(object)— 判斷一個對象是否是另一對象的 prototype;propertyIsEnumerable(property)— 判斷所給出的屬性能否使用 for 語句列舉出來;toString()—返回對象的原始類型string;valueOf()—返回對象合適的原始值,對于多數(shù)類而言,返回的值和toString()相同。這些就是原始Object對象的方法,在其他類中這些方法以同樣被繼承。

在Asp.NET Ajax中微軟為了將整個類庫擴展的更適合.NET的開發(fā)人員,在原始的Object對象中擴展了兩個方法:

Object.__typeName="Object";

Object.getType=function(b){

  var a=b.constructor;

  if(!a||typeof a!=="function"||!a.__typeName||a.__typeName==="Object")return Object;

  return a

};

Object.getTypeName=function(a){

  return Object.getType(a).getName()

};

從上面我們可以看到,Object.getType(type)這個靜態(tài)方法可以獲取一個類的對象,而Object.getTypeName(type)通過調(diào)用[prototype]Type.getName()而獲取類的名(包括命名空間)。這沒有什么好說的,下面來看一下測試:

        <asp:ScriptManager ID="ScriptManager1" runat="server" />

        <div>

        <script language="javascript">

        Type.registerNamespace("NExplus");

        //define a class;

        NExplus.ObjectTest=function(name){

          this._name=name;

        }

        NExplus.ObjectTest.prototype.getName=function(){

          return (this._name === undefined) ? null : this._name;

        }

        NExplus.ObjectTest.prototype.setName=function(name){

          this._name=name;

        }

        //register class;

        NExplus.ObjectTest.registerClass("NExplus.ObjectTest");

        

        NExplus.TestObject=function(){

          var a=new NExplus.ObjectTest("Test is success?");

          document.write(a.getName());

          document.write("<br/>");

          a.setName("Success!");

          document.write(a.getName());

          document.write("<br/>");

          document.write(Object.getTypeName(a)+"<br/>")

        }

        //run;

        NExplus.TestObject();

        </script>

        </div>

運行結(jié)果:

Test is success?
Success!
NExplus.ObjectTest

感謝各位的閱讀,以上就是“如何理解ECMAScript基礎類以及Asp.net Ajax對類”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對如何理解ECMAScript基礎類以及Asp.net Ajax對類這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

新聞名稱:如何理解ECMAScript基礎類以及Asp.netAjax對類
本文網(wǎng)址:http://bm7419.com/article32/isgisc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航、網(wǎng)站排名、商城網(wǎng)站網(wǎng)站制作、微信小程序、網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設公司