Гибкие функции |изменить любую переменную с помощью одной функции - PullRequest
0 голосов
/ 21 мая 2018

Мне было просто интересно, возможно ли определить одну функцию и использовать ее для изменения любой переменной, которую вы хотите?Я знаю, что вы можете изменить значение переменной с помощью параметров и аргументов, но можете ли вы как-то использовать их для изменения разных переменных каждый раз?Примерно так:

var x, y;

function foo(parameter1, parameter2) {
    parameter1 = parameter2;
}

foo(x, 'Hello World');
foo(y, 'Bye Bye World');

И мне также интересно, можно ли сделать это и с объектами, что-то вроде:

function Object() {
    this.x;
    this.y;
}

function foo(param1, param2) {
    param1 = param2;
}

var object = new Object();
foo(object.x, 'Hello World');
foo(object.y, 'Bye Bye World');

1 Ответ

0 голосов
/ 21 мая 2018

Нет, это невозможно.JS не может передавать переменные по ссылке.

И мне также интересно, если вы можете сделать это с объектами

Вы можете изменять объекты, которые были переданы вашей функции, но сноваВы не можете передать недвижимость по ссылке.Вы можете передать объект и имя свойства:

function foo(obj, name, value) {
    obj[name] = value;
}

var object = {
  x: '',
  y: '',
};
foo(object, 'x', 'Hello World');
foo(object, 'y', 'Bye Bye World');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...