對javascript Function函數深入理解與實戰(附上程式碼)
今天帶給大家一片關於javascript的基礎教學內容,關於Function函數的訓練與理解,一起學習下吧。
Function函數是javascript的基礎也是實現功能的一個引爆點,我們透過實例分析讓你對Function函數有一個更深刻的理解以及在實際中的用法講解。
Function 確實是物件。而我們定義的任何一個函數其實都是Function 物件的一個實例,也可以理解為指向Function 物件的一個實例.
既然是物件的一個實例,那肯定指向了Function 類型的一個引用. 既然指向了一個引用類型的內存地址,那你也可以簡單的把我們定義的函數理解為一個變量,這個變量指向了一個引用類型的地址,這個地址指向了Function 物件的一個實例.
既然我們定義的函數其實是一個變數,那這個函數實例位址可以同時指向多個變數.
看下面的程式碼:
var add = new Function("n", "m", "return n m");
上面是標準的函數定義,呼叫了Function物件的建構子,這個建構子把前面的N個參數都預設為新函數的參數,直到最後一個參數認為是新函數的函數體.
從上面的語句中非常直觀的看到add這個變數指向了一個Function 類型的實例,但是這種命名方法非常繁瑣,等價於:
(1)函數表達式
var add=function(n,m){ return n+m; }
(2)函數申明
function add(n,m){ return n+m; }
由於javascript語言中的申明提前,所以一版提倡用第二種方法定義函數,關於函數申明提前單獨開闢一篇來說
但是第一種定義方法讓人很直觀看到add 是一個指向函數實例的一個變量.
既然是一個變數,就可以賦值給其他變數,可以當做參數在函數中傳遞,也可以從函數返回.
所以var add2=add3=add; 現在三個變數都指向了這個實例的參考, 現在add=null; 以後add2,add3 兩個函數完全可以使用不受影響,因為add 移除函數物件的引用後指向了null的引用.所以根本不影響add2 和add3兩個函數.
所以函數可以當做其他函數的參數傳入.
所以函數可以當做函數的回傳值回傳.
因為函數名稱只是一個指向函數實例的變數,所以javascript中函數不會有重載,因為相同的變數指向的是相同的引用位址.最後表示的還是同一個函數.
函數既然是物件的實例,那麼就應該有屬性,就應該有方法.所以javascript中的函數有屬性也有方法.
比較重要的4個屬性arguments , this , length , prototype
arguments 表示當前函數的參數類數組,這個屬性很特殊,他自己還有個屬性叫callee ,
arguments.callee 屬性保存了一個指標,指標指向了擁有此arguments 屬性的函數實體(也就相當於函數名稱)
this屬性是當前環境,類似與C# 中的this,表示當前上下文
length 屬性表示當前函數接收最大參數個數
prototype 表示該函數的原型,也就是把物件實例的方法完整的保存下來,換句話說就是原型上的方法都繼承下來了.比如toString() valueOf() 等.
##接下來,我們來看看function函數種類
普通函數:介紹普通函數的特性:同名覆寫、arguments物件、預設回傳值等。function ShowName(name) { alert(name); }
//变量匿名函数,左侧可以为变量、事件等 var anonymousNormal = function (p1, p2) { alert(p1+p2); } anonymousNormal(3,6);//输出9
function funA() { var i = 0; function funB() { //闭包函数funB i++; alert(i) } return funB; } var allShowA = funA(); //全局变量引用:累加输出1,2,3,4等 function partShowA() { var showa = funA();//局部变量引用:只输出1 showa(); }
Vue.js設定登入表單程式碼步驟剖析
以上是對javascript Function函數深入理解與實戰(附上程式碼)的詳細內容。更多資訊請關注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來實現線上語音辨識系

人臉偵測辨識技術已經是一個比較成熟且應用廣泛的技術。而目前最廣泛的網路應用語言非JS莫屬,在Web前端實現人臉偵測辨識相比後端的人臉辨識有優勢也有弱勢。優點包括減少網路互動、即時識別,大大縮短了使用者等待時間,提高了使用者體驗;弱勢是:受到模型大小限制,其中準確率也有限。如何在web端使用js實現人臉偵測呢?為了實現Web端人臉識別,需要熟悉相關的程式語言和技術,如JavaScript、HTML、CSS、WebRTC等。同時也需要掌握相關的電腦視覺和人工智慧技術。值得注意的是,由於Web端的計

股票分析必備工具:學習PHP和JS繪製蠟燭圖的步驟,需要具體程式碼範例隨著網路和科技的快速發展,股票交易已成為許多投資者的重要途徑之一。而股票分析是投資人決策的重要一環,其中蠟燭圖被廣泛應用於技術分析。學習如何使用PHP和JS繪製蠟燭圖將為投資者提供更多直觀的信息,幫助他們更好地做出決策。蠟燭圖是一種以蠟燭形狀來展示股票價格的技術圖表。它展示了股票價格的

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

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

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

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

隨著網路金融的快速發展,股票投資已經成為了越來越多人的選擇。而在股票交易中,蠟燭圖是常用的技術分析方法,它能夠顯示股票價格的變動趨勢,幫助投資人做出更精準的決策。本文將透過介紹PHP和JS的開發技巧,帶領讀者了解如何繪製股票蠟燭圖,並提供具體的程式碼範例。一、了解股票蠟燭圖在介紹如何繪製股票蠟燭圖之前,我們首先需要先了解什麼是蠟燭圖。蠟燭圖是由日本人
