2016-03-04 3 views
0

У меня есть метод на объект JavaScript со структурой:Как вызвать переменную, ссылаясь на javascript?

performOperation: function (rel) { 
    var currentArray = []; 

    switch (rel) { 
     case 'templates': 
      currentArray = templates; 
     break; 

     case 'drafts': 
      currentArray = drafts; 
     break; 

     case 'sent': 
      currentArray = sent; 
     break; 

     case 'scheduled': 
      currentArray = scheduled; 
     break; 

     case 'cancelled': 
      currentArray = cancelled; 
     break; 

     case 'inbox': 
      currentArray = inbox; 
     break; 
    } 

    // Series of operations here. 

    switch (rel) { 
     case 'templates': 
      templates = currentArray; 
     break; 

     case 'drafts': 
      drafts = currentArray; 
     break; 

     case 'sent': 
      sent = currentArray; 
     break; 

     case 'scheduled': 
      scheduled = currentArray; 
     break; 

     case 'cancelled': 
      cancelled = currentArray; 
     break; 

     case 'inbox': 
      inbox = currentArray; 
     break; 
    } 
} 

Есть ли способ я могу назвать это var currentArray с помощью ссылки на массив, которые будут использоваться, т.е. либо drafts, inbox, cancelled, .... В C++ и PHP я знаю, что мы делаем ссылку, используя & перед переменной.

Если есть способ сделать это, ссылаясь на JavaScript, пожалуйста, все ответы приветствуются.

+0

В JavaScript нет вызова по ссылке. Ни за что. – Bergi

+0

Если вы * манипулируете * объектом, например, одним из ваших массивов, вам не нужно его возвращать, поскольку вы никогда не создавали его копию. Объекты являются ссылочными значениями. – Bergi

+0

Вы действительно хотите использовать объект и ссылаться на его свойства с помощью динамических имен, вместо того, чтобы вместе держать кучу разных переменных. – Bergi

ответ

0

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

var data = { 
     templates: [], 
     drafts: [], 
     sent: [], 
     scheduled: [], 
     cancelled: [], 
     inbox: [] 
    }; 

function performOperation(rel) { 
    var currentArray = data[rel]; 
    // 
    // Series of operations here. 
    // 
    data[rel] = currentArray; 
} 
Смежные вопросы