0
嗨,當我有以下的javascript代碼JavaScript函數範圍傳遞對象作爲參數
var skyrimCity = function(object) {
object = {
'world': 'whiterun'
};
},
skyrim = function(object) {
object.world = 'skyrim';
},
elderScrolls = {
'world': 'tamriel'
};
console.log(elderScrolls); // printed value ? -> {world: "tamriel"}
skyrimCity(elderScrolls);
console.log(elderScrolls); // printed value ? -> {world: "tamriel"}
skyrim(elderScrolls);
console.log(elderScrolls); // printed value ? -> {world: "skyrim"}
裏面天際功能我改變了世界的價值,但我可以看到它的功能外還有。我想知道爲什麼這個變化的範圍在函數之外傳播?在JavaScript函數中傳遞一個對象總是作爲對原始對象本身的引用傳遞?
數組,函數和對象都是通過引用在JS中引用,總是。 –
*「在JavaScript函數中傳遞一個對象總是作爲對原始對象本身的引用傳遞嗎?」*是的,它和其他流行語言(Java,PHP,Python)的工作方式基本相同。 –
是迂腐,對象在JS中通過「byValue」,它只是該值是對象的引用... – dandavis