0
我想在每個函數調用中創建一個新變量,並將這個新變量推送到一個全局數組中。在函數中聲明的var在多個函數調用中是否存在?
globalArr = [];
function addObj(objId){
var newObj = {id: objId};
globalArr.push(newObj);
}
JavaScript的Array.prototype.push
方法來newObj
參考追加到globalArr
。
我是否會爲每次致電addObj()
創建獨特的對象?我認爲,但我不完全確定newObj
將不會持續多次通話。我想確保每次撥打addObj
時我都不會推薦相同的newObj
。
我已經考慮過類似下面的解決辦法,但我不知道這是否是必要的:
function addObj(objId){
var newObj = new anObject(objId);
globalArr.push(newObj);
}
function anObject(objId){
this.id = objId;
}
也許我講的問題根本不存在?
每當您調用* addObj *時,全新的執行上下文都會與局部變量* newObj *的全新實例一起創建。被推入* globalArr *的是對分配給* newObj *的對象的引用。無論發生什麼* newObj *變量之後都無關緊要。 – RobG