![](/img/trans.png)
[英]Assign a changed function to another variable and get different body with same name
[英]Assign a variable as a function parameter with the same name
我不明白為什么這是不正確的:
let a=5
a = a
//so there are no errors here. In the last statement javascript replaces the left side with a value, and that's it
現在如果我寫這個:
let a=5
function hey(a=a){
return console.log(a)
}
hey()
這將返回未定義,因此參數 a=a 不會被評估為a=6
具有相同變量名稱的用例是我想在腳本的開頭創建一個帶有變量的部分,並使用與稍后在函數中使用的名稱相同的名稱。
在第一個示例中,您有一個名為a
變量。 您可以將值分配給a
到a
。 這是沒有意義的,但有可能。
在您的第二個示例中,您有兩個不同的變量,它們都命名為a
,它們存在於不同的范圍內。 在 function 聲明中, a
指的是局部變量a
而不是全局變量a
。 當您嘗試使用a
作為默認值時,它會讀取本地范圍a
,它是undefined
。
如果您想這樣做,請使用不同的名稱。 將它們組織在 object 中也可能是有意義的。
const default_values = { a: 5 }; function hey(a = default_values.a) { console.log(a); } hey();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.