例子:
let x = 99;
function foo(p = x + 1) {
console.log(p);
}
foo() // 100
x = 100;
foo() // 101
但是,如果我將參數稍微改變一下為:
let x = 99;
function foo(x = x + 1) {
console.log(x);
}
foo() // NaN
x = 100;
foo() // NaN
為什麼會顯示成NaN呢?中間發生了哪些不可看的隱形變化?有知道的,可以告知一下嗎?謝了
下面這段程式碼相當於
也就是說foo(x = x + 1) 裡的x和外面的x沒有半毛錢關係, 是你自己定義在函數內部的。
/a/11...
當然不行,那要行的話我也行