Я пытаюсь обновить объект, переданный в качестве параметра для метода в моем коде машинописи, но он никогда не меняется:
export class MyClass {
//...
myMethod(array) {
//...
let myVariable: MyObject;
array.forEach(currentElement => {
if (someCondition) {
this.replaceVariable(myVariable, currentElement);
}
});
console.log(myVariable); // myVariable here is Undefined
return myVariable;
}
private replaceVariable(variableToReplace: MyObject, newValue: MyObject) {
if (variableToReplace == null) {
variableToReplace = newValue;
} else {
if (someCondition) {
variableToReplace = newValue;
}
}
console.log(variableToReplace); // variableToReplace here is replaced by newValue
}
}
Поскольку объекты всегда передаются по ссылке, я ожидал, что myVariable
получает новое значение после вызова метода replaceVariable
.Но, как видно из комментариев к коду, переменная заменяется внутри метода replaceVariable
и сохраняет значение undefined
в myMethod