一文帶你解讀JavaScript的引用類型和函數(shù)對象
前言
相信做網(wǎng)站對JavaScript再熟悉不過了,它是一門腳本語言,不同于Python的是,它是一門瀏覽器腳本語言,而Python則是服務器腳本語言,我們不光要會Python,還要會JavaScript,因為它對做網(wǎng)頁方面是有很大作用的。
1.引用類型
相當于Java中的類創(chuàng)建實例過程,比如我要創(chuàng)建個對象,可以這樣做:
- var ob = new Object();
其實它就是把JavaScript中的數(shù)據(jù)類型轉(zhuǎn)換為Java中的類來進行操作。
2.函數(shù)對象
1).Arguments對象
這是個神奇的對象,無需指明參數(shù)就可以訪問它,它無處不在,用好了將極大的提高你的工作效率。比如它可以檢查函數(shù)中有多少個參數(shù):
- function aa() {
- console.log(arguments.length);
- }
- aa("fsdaf",324,42.434,'42342asff');
2).Function對象
它可以十分方便的創(chuàng)建函數(shù),并且有多種方法創(chuàng)建函數(shù)。
1)).對象實例化創(chuàng)建
var ff= new function(name,age,score,表達式)
2)). 函數(shù)關鍵字創(chuàng)建
- function aa() {
- alert(111);
- }
- function aa(bb,cc) {
- alert(bb,cc);
- }
Function有一個Length屬性用來計算長度:
- function aa() {
- alert(111);
- }
- aa.length
3).Constructor屬性
看到這個長長的東西是不是感到特別陌生,它就是我們的構造函數(shù),我們可以對此判斷當前實例是否屬于對象。
- var aa=new Array()
- if(aa.constructor==Array){
- console.log(11)
- }
- else{
- console.log(22)
- }
4).Prototype屬性
指對象的原型參數(shù),實例化后的對象是沒有Prototype屬性的,只有對象本身才有這個屬性。利用該屬性創(chuàng)建的變量名和值并沒有加入到實例對象中,只是創(chuàng)建了,如果你想訪問它,可以使用:實例名.constructor.prototype來進行訪問。
從上面可以看出,數(shù)組的實例化對象可以創(chuàng)建任意變量并且賦值,但是它的原型卻不行,如果是數(shù)組本身那么就又可以了。而且要想訪問原型的構造函數(shù)還得是對象本身,最后得到的結(jié)果也就是對象本身??梢婋m然原型和構造函數(shù)換了個位置,但是意義完全不一樣。
5).This 對象
其實就相當于Java中的This,Python 中的Self,可以看出它的重要性,無非就是指向一個實例對象。
3.閉包
其實就是嵌套函數(shù)。
- var aa= 10;
- function s(cc,bb) {
- function sa() {
- return cc+bb;
- }
- return sa();
- }
總結(jié)
這篇文章主要結(jié)束了JavaScript的引用類型、函數(shù)對象和閉包,下一篇文章繼續(xù)給大家分享JavaScript知識,敬請期待!