我想通過引用傳遞基元變量。通過refence傳遞基元變量javascript
var foo = 2;
function inc (arg) {
arg++
}
inc(foo) //won't increment foo
上述不起作用,因爲在JavaScript中,基元(如數字)通過值傳遞,而對象通過引用傳遞。爲了通過引用傳遞原語,我們需要把它們作爲申報對象:
var foo = new Number(2)
function inc (arg) {
arg++
}
inc(foo) //increments foo
這似乎是一個非常哈克解決方法,而且很可能傷害了執行速度。在其他OO語言中,我們可以將「指針」或「引用」傳遞給函數。 JS中有這樣的東西嗎?謝謝!
你在問什麼? JavaScript中沒有對基元進行傳遞引用。 – Cristy
真正的問題在於你應該閱讀關於JS如何工作的範圍。一個簡單的鏈接:http://www.w3schools.com/js/js_scope.asp – manuerumx
更好的鏈接:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures – manuerumx