У меня есть массив JavaScript внутри пространства имен, как это:Передать массив JavaScript в локальную переменную по ссылке?
app.collec.box = [];
и у меня есть функция внутри того же пространства имен, как это:
app.init = function() {
var box = this.collec.box;
// ... code to modify box
};
Я думал, что установка локальной переменной, равной объекта или свойство объекта было просто ссылкой на оригинал, но, похоже, я ошибаюсь, после изменения содержимого локальной переменной box
внутри моей функции app.collec.box
не изменяется.
Помогите, что я делаю неправильно? как я могу это решить?
Заранее спасибо.
EDIT. Это полный код.
var app = {
collec: {
box: [],
cache: []
},
init: function() {
var box = this.collec.box;
$.ajax({
url: 'file.json',
success: function (json) {
// Map JSON array to box array using Underscore.js _()map
box = _(json).map(function (o) {
return new Model(o);
});
}
});
}
};
app.init();
Вы исключили соответствующий код из своего вопроса. – user113716
@patrick действительно. @VerizonW, пожалуйста, включите фрагмент кода, который фактически вызывает вызов app.init. –
Вы должны изучить геттеры и сеттеры: http://stackoverflow.com/questions/812961/javascript-getters-and-setters-for-dummies –