我有一個關於傳遞參考的問題。特別是我將wf
傳遞給wordFormUpdateSubmit。當我從.forEach傳遞時,爲什麼我會丟失對象引用?
當我這樣做:
wf = response.data;
它不會改變任何東西word.wordForms當我這樣做:
self.word.wordForms[key] = response.data;
它正確地更改WF的內容word.wordForms
我的問題是爲什麼它不通過引用傳遞,爲什麼wf = response.data;
不起作用?
wordFormCheckAndUpdate =(): ng.IPromise<any> => {
var self = this;
var promises = [];
angular.forEach(self.word.wordForms, function (wf, key) {
var updatePromise = self.wordFormUpdateSubmit(wf, key);
promises.push(updatePromise);
});
return self.$q.all(promises);
};
wordFormUpdateSubmit = (wf: IWordForm, key: number): ng.IPromise<any> => {
var self = this;
return self.$http({
url: self.ac.dataServer + "/api/WordForm/Put",
method: "PUT",
data: wf
})
.then(
(any => {
// This does not correctly populate self.word.wordForms[0]
wf = response.data;
// This works
self.word.wordForms[key] = response.data;
});
}
有一件事是肯定的:這是不是的JavaScript。 C#,也許? –
@JanDvorak Typescript或Babel的類型系統都是JavaScript超集。 –
@JeremyJStarcher ...和類型是從角? –