2 回答

TA貢獻1911條經驗 獲得超7個贊
header0
在你的參數列表中是一個參數,一個局部變量,就像a
是一個參數:
function test(a) { }
就像您不能a
在該函數之外按名稱引用一樣,您test
也不能用您的代碼和header0
. 因此,如果您使用 調用您的函數 header0 =
,您實際上是在定義一個全局變量header0
并在現場為其分配一個值。在嚴格模式下會產生錯誤。它與參數無關header0
。
該參數header0
將從您作為headers
屬性值傳遞的數組的第一個元素中獲取其值。如果您作為參數傳遞的對象沒有該headers
屬性,或者該屬性沒有定義不同于 的第一個數組元素undefined
,則局部headers0
變量將獲得默認值。
不要將此變量與后跟冒號的屬性名稱混淆,后者也出現在您的參數部分:headers:
. 這不是一個變量,而只是定義了變量的位置,headers0
并且otherHeaders
在調用函數時應該獲取它們的值。但headers
它本身并不是一個變量。
url
另一方面是一個變量。它從具有相同名稱的屬性中獲取其值。注意沒有冒號。這使它成為一個變量(參數)。
解構中使用的語法可能非常混亂。例如,如果不是url,
you would have url: url2
,那么不是定義 variable url
,而是定義 variable url2
——仍然是url
屬性在傳遞給函數的對象中的值。

TA貢獻1841條經驗 獲得超3個贊
我認為您應該嘗試使用對象來解決您的問題以引用數組索引。但是,如果您真正想要的是擁有一個返回函數中第一個值的數組,您可以嘗試按如下方式排列數組。
const defaulHeader = ["Content-Type: text/plain"]
const otherHeaders = ["Some-type: application/json"]
const headers = [
...defaulHeader,
...otherHeaders
]
console.log(headers)
添加回答
舉報