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