JavaScript參數按值傳遞javascript
var value = 1 function foo(value){ value = 2 console.log(value) // 2 } foo(value) console.log(value) // 1 當傳遞value到函數foo中,至關於拷貝了一份value,假設拷貝的這份叫_value,函數中修改的都是_value的值,而不會影響原來的value的值
引用傳遞?java
var obj = { value : 1 } function foo(obj){ obj.value=2 console.log(obj.value)// 2 } foo(obj) console.log(obj.value)// 2
上面說了ECMAScript中全部函數的參數都是按值傳遞,怎麼能按引用傳遞成功呢數據結構
var obj = { value : 1 } function foo(obj){ obj = 2 console.log(obj)// 2 } foo(obj) console.log(obj.value)// 1
若是JavaScript採用的是引用傳遞,外層的值也會被修改。函數