我想通过引用传递基元变量。通过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