最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

[ASP.NET Ajax] ECMAScript基礎(chǔ)類以及Asp.net Ajax對(duì)類<Object>的擴(kuò)展

 更新時(shí)間:2007年01月07日 00:00:00   作者:  

“Everything is Object”,在面向?qū)ο蟮木幊陶Z(yǔ)言中誰(shuí)都知道這句話,但對(duì)我來(lái)說(shuō)這是一種感覺(jué),只可意會(huì)很難言傳。由于我對(duì)JavaScript和薄弱,所以在看Asp.net Ajax類庫(kù)的同時(shí)也翻出了ECMAScript順便學(xué)習(xí)學(xué)習(xí)。在.NET中所有類都是繼承自O(shè)bject,同樣在JS中也一樣說(shuō)有都繼承Object,因此如果對(duì)Object進(jìn)行了擴(kuò)展,那所有繼承Object類的后代肯定會(huì)擁有祖先的血緣。

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

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

2.        Null: 當(dāng)一個(gè)對(duì)象的值不存在時(shí),該對(duì)象返回null。

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

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

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

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

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

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

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

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)這個(gè)靜態(tài)方法可以獲取一個(gè)類的對(duì)象,而Object.getTypeName(type)通過(guò)調(diào)用[prototype]Type.getName()而獲取類的名(包括命名空間)。這沒(méi)有什么好說(shuō)的,下面來(lái)看一下測(cè)試:

        <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>

運(yùn)行結(jié)果:

Test is success?
Success!
NExplus.ObjectTest

   這個(gè)比較簡(jiǎn)單,微軟只是為了和.NET框架更接近而擴(kuò)展的Object類,我覺(jué)得這兩個(gè)在開(kāi)發(fā)過(guò)程中應(yīng)該很少用到吧,上面的測(cè)試順便測(cè)試一下屬性J。我很想知道有沒(méi)有那個(gè)好心人翻譯了ECMAScript的規(guī)范文檔,看英文真的好類;<.順便附上一只捆牢我的兩個(gè)操作符: ||:從第一個(gè)開(kāi)始,遇到有意義的返回,否則返回最后一個(gè)表達(dá)式(不一定是Boolean值); &&:從第一個(gè)開(kāi)始,遇到無(wú)意義(0,null,undefined,"",false,NaN)的返回,否則返回最后一個(gè)表達(dá)式(不一定是Boolean值)。

相關(guān)文章

  • 初學(xué)者必看的Ajax總結(jié)篇

    初學(xué)者必看的Ajax總結(jié)篇

    本文主要總結(jié)整理Ajax的一些常用的基礎(chǔ)知識(shí),非常適合初學(xué)者。需要的朋友可以參考借鑒,下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-01-01
  • Ajax 返回字符串的過(guò)濾實(shí)現(xiàn)代碼

    Ajax 返回字符串的過(guò)濾實(shí)現(xiàn)代碼

    在調(diào)用Ajax返回后。一個(gè)奇怪的問(wèn)題。返回的resultString值是“ok”但是跟字符串"ok"比較確不相等。
    2009-08-08
  • Ajax請(qǐng)求響應(yīng)中用window.open打開(kāi)新窗口被攔截的解決方法

    Ajax請(qǐng)求響應(yīng)中用window.open打開(kāi)新窗口被攔截的解決方法

    ajax 異步請(qǐng)求成功后需要新開(kāi)窗口打開(kāi) url,使用的是 window.open() 方法,但是會(huì)被瀏覽器給攔截,怎么解決呢,下面小編給大家解答下
    2016-08-08
  • Ajax實(shí)現(xiàn)跨域訪問(wèn)最新解決方案

    Ajax實(shí)現(xiàn)跨域訪問(wèn)最新解決方案

    在項(xiàng)目開(kāi)發(fā)過(guò)程中,我們經(jīng)常會(huì)遇到同一個(gè)域名下不同項(xiàng)目之間通過(guò)Ajax相互調(diào)用數(shù)據(jù),這樣問(wèn)題就來(lái)了,如何通過(guò)Ajax實(shí)現(xiàn)跨域呢?下面腳本之家小編給大家?guī)?lái)了Ajax實(shí)現(xiàn)跨域訪問(wèn)最新解決方案,感興趣的朋友一起看看吧
    2018-07-07
  • 純JS實(shí)現(xiàn)AJAX局部刷新功能

    純JS實(shí)現(xiàn)AJAX局部刷新功能

    下面給大家介紹JS實(shí)現(xiàn)AJAX局部刷新功能,通過(guò)在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX 可以使網(wǎng)頁(yè)實(shí)現(xiàn)異步更新。對(duì)ajax實(shí)現(xiàn)局部刷新功能感興趣的朋友一起看看吧
    2017-02-02
  • 詳解ajax跨域問(wèn)題解決方案

    詳解ajax跨域問(wèn)題解決方案

    這篇文章主要介紹了詳解ajax跨域問(wèn)題解決方案,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Ajax對(duì)xml信息的接收和處理操作實(shí)例分析

    Ajax對(duì)xml信息的接收和處理操作實(shí)例分析

    這篇文章主要介紹了Ajax對(duì)xml信息的接收和處理操作,結(jié)合實(shí)例形式分析了ajax針對(duì)xml結(jié)構(gòu)信息的相關(guān)處理操作技巧,需要的朋友可以參考下
    2019-07-07
  • ajax判斷后端返回的數(shù)據(jù)是否為null的方法

    ajax判斷后端返回的數(shù)據(jù)是否為null的方法

    今天小編就為大家分享一篇ajax判斷后端返回的數(shù)據(jù)是否為null的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • Ajax提交Form表單及文件上傳的實(shí)例代碼

    Ajax提交Form表單及文件上傳的實(shí)例代碼

    前段時(shí)間在做程序的時(shí)候發(fā)現(xiàn)一個(gè)小問(wèn)題,在寫(xiě)后臺(tái)管理上傳圖片時(shí),在我進(jìn)行用Form表單提交的時(shí)候直接跳出來(lái)提交返回值的頁(yè)面并且原先的頁(yè)面刷新,下面小編通過(guò)分享本文給大家解析下
    2016-10-10
  • Ajax局部刷新應(yīng)用案例---簡(jiǎn)單登錄

    Ajax局部刷新應(yīng)用案例---簡(jiǎn)單登錄

    Ajax局部刷新在之前的文章中也有介紹過(guò),下面以一個(gè)登錄的例子為大家介紹下其具體的使用
    2013-12-12

最新評(píng)論

萨嘎县| 漠河县| 昌宁县| 江川县| 田东县| 陇南市| 龙里县| 义马市| 桑植县| 沂水县| 秦皇岛市| 清新县| 潮州市| 绥滨县| 望都县| 金沙县| 泗阳县| 福贡县| 高安市| 西青区| 广水市| 富源县| 海林市| 无锡市| 泰和县| 余姚市| 金溪县| 天峨县| 茂名市| 若羌县| 伊通| 东阿县| 鄄城县| 杭锦后旗| 吉首市| 姜堰市| 乐安县| 清原| 乡宁县| 金沙县| 卫辉市|