1 回答

TA貢獻1796條經(jīng)驗 獲得超4個贊
實際上,您傳遞給函數(shù)的參數(shù)是pass by value
這意味著即使您更改參數(shù)值,它也不會反映到實際值...
這里,來自w3Schools - JavaScript 函數(shù)參數(shù)
參數(shù)按值傳遞
函數(shù)調(diào)用中的參數(shù)是函數(shù)的參數(shù)。
JavaScript 參數(shù)是按值傳遞的:函數(shù)只知道值,而不是參數(shù)的位置。
如果函數(shù)改變了參數(shù)的值,它不會改變參數(shù)的原始值。
對參數(shù)的更改在函數(shù)外部不可見(反映)。
對象通過引用傳遞
在 JavaScript 中,對象引用是值。
因此,對象的行為就像它們通過引用傳遞一樣:
如果一個函數(shù)改變了一個對象的屬性,它就會改變原來的值。
對對象屬性的更改在函數(shù)外部可見(反映)
這來自mdn - 函數(shù)減速|(zhì) 謝謝@Ivar
原始參數(shù)(例如數(shù)字)按值傳遞給函數(shù);該值 > 傳遞給函數(shù),但如果函數(shù)更改了參數(shù)的值,則此更改不會在全局或調(diào)用函數(shù)中反映出來。
如果您將對象(即非原始值,例如 Array 或用戶定義的對象)作為 >a 參數(shù)傳遞,并且函數(shù)更改了對象的屬性,則該更改在函數(shù)外部可見
添加回答
舉報