這篇文章主要講解了“如何理解ECMAScript基礎(chǔ)類以及Asp.net Ajax對(duì)類”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“如何理解ECMAScript基礎(chǔ)類以及Asp.net Ajax對(duì)類”吧!
“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
感謝各位的閱讀,以上就是“如何理解ECMAScript基礎(chǔ)類以及Asp.net Ajax對(duì)類”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)如何理解ECMAScript基礎(chǔ)類以及Asp.net Ajax對(duì)類這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
新聞標(biāo)題:如何理解ECMAScript基礎(chǔ)類以及Asp.netAjax對(duì)類-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://aaarwkj.com/article26/dpscjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、響應(yīng)式網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)站收錄、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
移動(dòng)網(wǎng)站建設(shè)知識(shí)