關於函數的那些事

在JavaScript中,函數是很是重要的一部分,本文將從多發個方面來解析瞭解函數。那麼首先咱們要先知道什麼是函數?簡單來講,函數是一段能夠反覆調用的代碼塊,能夠用來幫助咱們封裝、調用代碼!數組


函數的聲明

在瞭解了函數存在的意義和做用後,咱們要怎樣才能獲得一個函數呢?函數的聲明一共有五種方法,接下來咱們來詳細瞭解一下。閉包

  • 具名函數
function x(input1,input2){
    return 
}

其中,function是關鍵字不能夠更改,x是函數名,若是不寫return,會自動補全爲return undefined函數


  • 匿名函數(把沒有名字的函數賦值給變量)
var x = function(input1,input2){
    return 
}

  • 把有名字的函數賦值給變量
var x = function y(input1,input2){
    return 
}

這種方法與具名函數的區別是,具名函數可直接打印出函數如圖一,而這種方法打印出的倒是報錯如圖二。其緣由是二者的做用域不同。this

圖一.png圖一spa

圖二.png圖二code


  • window.Function函數對象
f = new Function('x','y','return x + y')

  • 最炫的方式登場!箭頭函數
f = (x,y) => {return x + y}

name屬性

函數中的name屬性各類狀況如圖三:對象

圖三.png圖三ip


如何調用函數?

函數中的call屬性能夠用來調用函數。調用函數必定要加(),如f.call(undefined,x,y);若是直接寫函數名不加()是不能夠調用的,函數不會被執行。返回值爲原始值(數字,字符串,布爾值)的this會指向該原始值的自動包裝對象。作用域


this和arguments

什麼是this?call的第一個參數能夠用this獲得
什麼是arguments?call後面的參數能夠用arguments獲得,獲得的是除第一個參數外全部參數組成的僞數組。字符串


閉包

若是一個函數使用了它範圍外的變量,那麼這個函數+這個變量就叫作閉包。

相關文章
相關標籤/搜索