国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

javascript中Function類型詳解

2024-05-06 16:18:55
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了javascript中Function類型詳解的相關資料,需要的朋友可以參考下

Function 類型

function類型,毋庸置疑是js中相當重要的一個玩意。

1.這玩意首先是一個對象,也就是說它是一個引用類型。陳述:一聽說是對象,是不是很有一種它的基類是object對象錯覺感,No,

它和object是獨立的2個東西。當你typeof function 時,返回的是 funciton 并非 object

2.每個函數都是 Function 對象的一個實例,它與其他引用對象一樣具有屬性和方法。由于它是對象所以函數名是指向函數對象的指針

關于函數的聲明的語法支持:

 

 
  1. <script> 
  2.  
  3. //方式1 
  4. function fun(num1,num2){ 
  5. return num1+num2; 
  6.  
  7. //方式2 
  8. var fun=function(num1,num2){ 
  9. return num1+num2; 
  10. }; 
  11.  
  12. //方式3 
  13. var fun=new Function("n1","n2","return n1+n2"); 
  14.  
  15. </script> 

講解:3種方式都能完成一個函數的聲明,但各有不同。

方式1 理解為 一個函數的聲明,方式2,方式3理解為函數表達式。(方式3不推薦使用,原因會導致解析2次代碼,先解釋常規ECMAScript代碼,在解釋傳入的參數,這種

寫法,參數可以是N個,但是最后一個參數視為函數主體)

為什么說不同,主要在于,js解析器對函數聲明 和 函數表達式 解析的不同。解析器會優先讀取函數申明,js引擎在執行時會將函數聲明自動放到執行環境的最頂端。

而函數表達式則不同,當執行到函數表達式時,才會真正去被解釋執行。關于這點理解很重要!

看代碼

 

 
  1. <script> 
  2. console.log(typeof fun); //"function" 
  3. console.log(typeof fun2); //"undefined" 
  4. console.log(typeof fun3); //"undefined" 
  5. function fun(n1,n2){ 
  6. return n1+n2; 
  7. var fun2=function(n1,n2){ 
  8. return n1+n2; 
  9. var fun3=new Function("n1","n2","return n1+n2;"); 
  10. </script> 

3.為什么函數沒有重載?

這個問題要從js的語言特性來考慮。在第2條已經說了,函數名稱只是指向函數對象的一個指針。根據指針的概念去理解就清楚了。

看代碼示例:

 

 
  1. <script> 
  2. function fun(n1){ 
  3. return n1+100; 
  4. function fun(n1){ 
  5. return n1+200; 
  6. console.log(fun(1));// 201  
  7.  
  8. //以上寫法在解析后應為 
  9.  
  10. var fun=function(n1){ 
  11. return n1+100; 
  12. fun=function(n1){ 
  13. return n1+200; 
  14.  
  15. // fun 的引用被覆蓋了 
  16. console.log(fun(1));// 201  
  17. </script> 

今天就寫到這,都是寫基本概念,希望對這塊有盲點的起到幫助!有什么需要指正的地方,希望各位霸氣留言指正。

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 红安县| 科尔| 固阳县| 三亚市| 浏阳市| 瑞丽市| 沈丘县| 高邑县| 温州市| 青川县| 杭锦旗| 宣化县| 乌兰县| 沙田区| 萝北县| 金寨县| 遂昌县| 孝义市| 万源市| 巴塘县| 青神县| 罗源县| 阿图什市| 太保市| 淮滨县| 朝阳区| 南漳县| 景东| 定襄县| 嘉祥县| 铁岭县| 井陉县| 霍林郭勒市| 花莲县| 阿图什市| 巴青县| 正安县| 荥经县| 无锡市| 延安市| 开化县|