javascript中Function類型詳細介紹
function類型,毋庸置疑是js中相當重要的一個玩意。
1.這玩意首先是一個對象,也就是説它是一個引用類型。陳述:一聽説是對象,是不是很有一種它的基類是object對象錯覺感,No,
它和object是獨立的2個東西。當你typeof function 時,返回的.是 funciton 並非 object
2.每個函數都是 Function 對象的一個實例,它與其他引用對象一樣具有屬性和方法。由於它是對象所以函數名是指向函數對象的指針
關於函數的聲明的語法支持:
//方式1 function fun(num1,num2){ return num1+num2; } //方式2 var fun=function(num1,num2){ return num1+num2; }; //方式3 var fun=new Function("n1","n2","return n1+n2");
講解:3種方式都能完成一個函數的聲明,但各有不同。
方式1 理解為 一個函數的聲明,方式2,方式3理解為函數表達式。(方式3不推薦使用,原因會導致解析2次代碼,先解釋常規ECMAScript代碼,在解釋傳入的參數,這種
寫法,參數可以是N個,但是最後一個參數視為函數主體)
為什麼説不同,主要在於,js解析器對函數聲明 和 函數表達式 解析的不同。解析器會優先讀取函數申明,js引擎在執行時會將函數聲明自動放到執行環境的最頂端。
而函數表達式則不同,當執行到函數表達式時,才會真正去被解釋執行。關於這點理解很重要!
看代碼
(typeof fun); //"function" (typeof fun2); //"undefined" (typeof fun3); //"undefined" function fun(n1,n2){ return n1+n2; } var fun2=function(n1,n2){ return n1+n2; } var fun3=new Function("n1","n2","return n1+n2;");
3.為什麼函數沒有重載?
這個問題要從js的語言特性來考慮。在第2條已經説了,函數名稱只是指向函數對象的一個指針。根據指針的概念去理解就清楚了。
看代碼示例:
function fun(n1){ return n1+100; } function fun(n1){ return n1+200; } (fun(1));// 201 //以上寫法在解析後應為 var fun=function(n1){ return n1+100; } fun=function(n1){ return n1+200; } // fun 的引用被覆蓋了 (fun(1));// 201
今天就寫到這,都是寫基本概念,希望對這塊有盲點的起到幫助!有什麼需要指正的地方,希望各位霸氣留言指正。
-
如何獲取PHP數組的鍵與值呢
array_keys($array);//獲取數組(字典)的所有鍵值,返回一個鍵值數組。array_values($array)://獲取數組的所有value值,飯回一個數組。<?php$json='{"a":1,"b":2,"c":3,"d":4,"e":5}';//註明:value不帶雙引號時,其值只能是數字。【!!!注意:大括號兩邊只能是單引號,...
-
HTML5教程:畫布Canvas基礎知識講解
Canvas是HTML5最讓人期待的特性之一,目前已獲得大部分Web瀏覽器支持Canvas可以幫助創建遊戲、增強圖形用户界面。下面YJBYS小編為大家帶來畫布Canvas基礎知識,希望對大家學習有所幫助!HTML5規範引進了很多新特性,其中最令人期待的之一就是Canvas元素。HTML5Canvas...
-
JavaScript基本語法分析
一、JavaScript基本語法。(一)數據類型與變量類型。整數,小數,佈局,字符串,日期時間,數組強制轉換:parseInt()parseFloat()isNaN()(二)數組var數組名=newArray([長度]);//“假冒”數組th-長度a[下標]=值。a[下標](三)函數複製代碼代碼如下:function函數名(形參){}function...
-
網頁設計10大靈感來源介紹
不僅僅只有網頁設計能激發我們創建出色網站的動力,幾乎我們身邊的任何事都會有此作用。以下是本站小編搜索整理的關於網頁設計10大靈感來源介紹,供參考借鑑,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!自然圖01圖02思考設計的最佳場所...
相關文章
- JavaScript instanceof 的使用方法有哪些
- 託福英語寫作範文:Examinations exert a pernicious influence on educat
- javascript中(function{})()寫法解析
- javascript之Function對象學習小結
- java如何利用java.net.URLConnection發送HTTP請求
- JavaScript中Function函數
- 有關JavaScript中的prototype.bind()方法介紹
- 萬惡的function在javascript中的運用實例分析
- 淺析javascript中function 的length屬性
- 高中英語作文:My approach to difficulties in learning