技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營

贊助商

分類目錄

贊助商

最新文章

搜索

[示例] 箭頭函數(shù)與常規(guī)函數(shù)的區(qū)別之:arguments參數(shù)對象

作者:admin    時(shí)間:2022-6-8 23:33:10    瀏覽:

常規(guī)函數(shù)也好,箭頭函數(shù)也好,你什么時(shí)候會選擇一個(gè)而不是另一個(gè)?這就需要了解它們之間的一些區(qū)別了,在這篇文章中,我將介紹箭頭函數(shù)與常規(guī)函數(shù)區(qū)別之:參數(shù)對象,以便你可以根據(jù)需要選擇正確的語法。

常規(guī)函數(shù)

在常規(guī)函數(shù)的主體內(nèi)部,arguments是一個(gè)特殊的類數(shù)組對象,其中包含調(diào)用該函數(shù)的參數(shù)列表。

常規(guī)函數(shù)訪問arguments

讓我們用 2 個(gè)參數(shù)調(diào)用myFunction()函數(shù):

function myFunction() {
  console.log(arguments);
}
myFunction('a', 'b'); // logs { 0: 'a', 1: 'b', length: 2 }

輸出

  常規(guī)函數(shù)的參數(shù)

myFunction()函數(shù)體內(nèi)部arguments是一個(gè)類似數(shù)組的對象,其中包含調(diào)用參數(shù):'a'和'b'。

箭頭函數(shù)

對于箭頭函數(shù),arguments在箭頭函數(shù)內(nèi)部沒有定義特殊關(guān)鍵字。

箭頭函數(shù)的this值相同,arguments對象是通過詞法解析的:箭頭函數(shù)從外部函數(shù)訪問arguments。

箭頭函數(shù)內(nèi)部訪問arguments

讓我們在箭頭函數(shù)內(nèi)部嘗試訪問arguments: 

function myRegularFunction() {
  const myArrowFunction = () => {
    console.log(arguments);
  }
  myArrowFunction('c', 'd');
}
myRegularFunction('a', 'b'); // logs { 0: 'a', 1: 'b', length: 2 }

輸出

箭頭函數(shù)的參數(shù)

可以看到,調(diào)用帶有參數(shù)cd的箭頭函數(shù)myArrowFunction()時(shí),在它的函數(shù)體內(nèi),arguments對象仍然等于myRegularFunction()函數(shù)調(diào)用的參數(shù):ab

訪問箭頭函數(shù)的直接參數(shù)

如果你想訪問箭頭函數(shù)的直接參數(shù),則可以使用其余參數(shù)功能: 

function myRegularFunction() {
  const myArrowFunction = (...args) => {
    console.log(args);
  }
  myArrowFunction('c', 'd');
}
myRegularFunction('a', 'b'); // logs ['c', 'd']

輸出

箭頭函數(shù)的其余參數(shù)

...args 其余參數(shù)收集箭頭函數(shù)的執(zhí)行參數(shù):['c', 'd']

總結(jié)

本文通過幾個(gè)示例,介紹了箭頭函數(shù)與常規(guī)函數(shù)的區(qū)別之:arguments(參數(shù)對象),通過本文的學(xué)習(xí),我們應(yīng)該了解到,箭頭函數(shù)是從外部函數(shù)訪問arguments的,而arguments是常規(guī)函數(shù)的對象。

相關(guān)文章

標(biāo)簽: 箭頭函數(shù)  
x
  • 站長推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */