В функции (функция «$ .resx») вы устанавливаете «результат», чтобы ссылаться на то же, что и «метки». Однако в обратном вызове из «$ .get ()» вы устанавливаете его в «yo». Эта строковая константа "yo" представляет собой значение , отличное от "меток", которое на самом деле ни к чему не было инициализировано. В JavaScript нет способа иметь ссылку на ссылку ; если «метки» были определены как имеющие какое-либо значение:
var labels = "this is a string";
тогда «result» в конечном итоге будет другой ссылкой на эту строку. Однако строки являются неизменяемыми, поэтому из обработчика успеха $ .get () вы не можете изменить эту строку.
Попробуйте это:
$.resx = function() {
var result = this;
return $.get("/", function() {
result[0] = "yo";
});
};
var labels = ["not yo"];
$.resx.call(labels).then(function() {
console.log(labels[0]);
});