8
考慮這個JavaScript函數:參數和參考
var f = function (a) {
console.log(a+" "+arguments[0]);
a = 3;
console.log(a+" "+arguments[0]);
}
我預計a
和arguments[0]
參考相同的值只到函數的第二個聲明。相反,他們似乎始終是指相同的值:f(2)
導致
2 2
3 3
和f({foo: 'bar'})
原因:
[object Object] [object Object]
3 3
是參數標識符和arguments
標識符以特殊的方式聯繫?
是的,這是一個不好的事情,我認爲這會無論如何改變。 – 2015-03-02 16:44:54
這是一個重複我想,我敢肯定,這是引用somewhere..I'll嘗試和挖掘出來的 – Liam 2015-03-02 16:46:05
可能重複[是JavaScript的一個傳遞引用或傳址值語言?](HTTP ://stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass-by-value-language) – Liam 2015-03-02 16:48:00