js函數需要掌握的知識
要知道,在js中,引用類型是一種資料結構,包含5種引用類型,分別是Object,data,Array,re請輸入代碼
gExp,Function。今天我們就來說Function這種資料結構。
在js種函數其實是對象,每個函數都是Function類型的實例。和其他引用類型一樣,都具有屬性和方法。
1.函數定義有幾種方法
-
函數宣告語法定義
function sum(num1,num2){ return num1+num2; }
登入後複製 函數表達式
注意函數表達式後邊有一個分號;
var sum=function(num1,num2){ return num1+num2; }
-
#使用Function 建構子
使用构造函数可以接收任意数量的参数,但最后一个参数始终被看成是函数体,而前面的参数则枚举出了参数
登入後複製
var sum=new Function("num1","num2","return num1+num2")
#當然第三種方法不友好,也不推薦。
函數名稱只是指向函數的指針,所以函數名稱與包含物件指標的其他變數沒有什麼不同。也就是說一個函數可能會有多個名字。
在這裡函數宣告和函數表達式有什麼差別呢?
解析器在向執行環境中載入資料的時候,對函數宣告和函數表達式是不一樣的。解析器首先會讀取函數聲明,並且使得這段函數聲明程式碼在任何程式碼之前都可呼叫。這就是我們平時所說的函數宣告提升。函數表達式不一樣,他必須等到函數解析器執行到他所在的程式碼區塊的時候,才會被真正的執行。比較下面2個例子
console.log(sum(10,10)); function sum(n1,n2){ return n1+n2; } 以上代码会正常执行 再看! console.log(sum(10,10)); var sum=function(n1,n2){ return n1+n2; } 以上执行器就会报错!
2.函數沒有重載
如果宣告了2個同名函數,結果是後面的函數覆寫了前面的函數。
function sun(a){ return a+100; } function sun(a){ return a+200; } var result=sum(2)//202
3.函數的內部屬性
-
包括this,arguments
具體不再敘述了
4.函數的屬性和方法
函數有2個屬性,length和prototype
length表示函數希望接收命名參數的個數。
function a(name){ //todo } function b(name,age){ //todo } function c(){ //todo } a.length //1 b.length //2 c.length //0
prototype屬性對於引用型別來說很重要,會有專門講解,這裡不再這贅述。
每個函數都包含2個非繼承的方法apply,call
#這兩個方法的用途都是在特定的作用域中呼叫函數,其實就是設定函數體內的this指涉的值。
首先。 apply()方法接收2個參數,一個是函數運作的作用域,另一個是參數數組,第二個參數可以是數組的實例,也可以是arguments.
function sum(num1,num2){ return num1+num2; } function test1(a,b){ return sum.apply(this,arguments); } function test2(c,d){ return sum.apply(this.[c,d]); } console.log(test1(1,1)) //2 console.log(test2(1,1)) //2
call方法和apply方法沒有多大的差別。差別就是call方法的第二個參數必須要傳遞的參數一個個列舉出來。
使用call和apply來擴充作用域最大的好處就是物件不和任何方法耦合。
相關推薦:
js函數的呼叫及有關隱式參數arguments和this的問題
#以上是js函數需要掌握的知識的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

如何使用WebSocket和JavaScript實現線上語音辨識系統引言:隨著科技的不斷發展,語音辨識技術已成為了人工智慧領域的重要組成部分。而基於WebSocket和JavaScript實現的線上語音辨識系統,具備了低延遲、即時性和跨平台的特點,成為了廣泛應用的解決方案。本文將介紹如何使用WebSocket和JavaScript來實現線上語音辨識系

WebSocket與JavaScript:實現即時監控系統的關鍵技術引言:隨著互聯網技術的快速發展,即時監控系統在各個領域中得到了廣泛的應用。而實現即時監控的關鍵技術之一就是WebSocket與JavaScript的結合使用。本文將介紹WebSocket與JavaScript在即時監控系統中的應用,並給出程式碼範例,詳細解釋其實作原理。一、WebSocket技

如何利用JavaScript和WebSocket實現即時線上點餐系統介紹:隨著網路的普及和技術的進步,越來越多的餐廳開始提供線上點餐服務。為了實現即時線上點餐系統,我們可以利用JavaScript和WebSocket技術。 WebSocket是一種基於TCP協定的全雙工通訊協議,可實現客戶端與伺服器的即時雙向通訊。在即時線上點餐系統中,當使用者選擇菜餚並下訂單

如何使用WebSocket和JavaScript實現線上預約系統在當今數位化的時代,越來越多的業務和服務都需要提供線上預約功能。而實現一個高效、即時的線上預約系統是至關重要的。本文將介紹如何使用WebSocket和JavaScript來實作一個線上預約系統,並提供具體的程式碼範例。一、什麼是WebSocketWebSocket是一種在單一TCP連線上進行全雙工

JavaScript和WebSocket:打造高效的即時天氣預報系統引言:如今,天氣預報的準確性對於日常生活以及決策制定具有重要意義。隨著技術的發展,我們可以透過即時獲取天氣數據來提供更準確可靠的天氣預報。在本文中,我們將學習如何使用JavaScript和WebSocket技術,來建立一個高效的即時天氣預報系統。本文將透過具體的程式碼範例來展示實現的過程。 We

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

JavaScript是一種廣泛應用於Web開發的程式語言,而WebSocket則是一種用於即時通訊的網路協定。結合二者的強大功能,我們可以打造一個高效率的即時影像處理系統。本文將介紹如何利用JavaScript和WebSocket來實作這個系統,並提供具體的程式碼範例。首先,我們需要明確指出即時影像處理系統的需求和目標。假設我們有一個攝影機設備,可以擷取即時的影像數

JavaScript中的HTTP狀態碼取得方法簡介:在進行前端開發中,我們常常需要處理與後端介面的交互,而HTTP狀態碼就是其中非常重要的一部分。了解並取得HTTP狀態碼有助於我們更好地處理介面傳回的資料。本文將介紹使用JavaScript取得HTTP狀態碼的方法,並提供具體程式碼範例。一、什麼是HTTP狀態碼HTTP狀態碼是指當瀏覽器向伺服器發起請求時,服務
