2016-06-08 3 views
0

Я использую Vue.js, и мне интересно, как я могу назвать свойство javascript динамическим способом. Скажем, я передать аргумент в функцию, как это:Ссылка на свойство javascript с динамическим именем

filter: function(items) { 
    this.countriesToFilter.splice(index, 1); 
}, 

Как я могу заменить страны в моем this.countriesToFilter вызова в динамике, так что я в конечном итоге, по существу:

this.itemsToFilter.splice(index, 1); 

ответ

1

Может, так?

filter: function(items) { 
    var whatToFilter = items + 'ToFilter'; 
    this[whatToFilter].splice(index, 1); 
}, 
1

Ответ да.

var name = "itemsToFilter"; 
var myArray = eval("this." + name); 

// use myArray 

Вы также можете добавить проверку безопасности, так что вы не звоните splice на неопределенный

if (typeof myArray != 'undefined') { 
    myArray.splice(index, 1) 
} 
1

Единственный способ, которым я могу представить себе эту работу, если вы передать строку в функцию, и интерполировать что строка в объект нотации, используя квадратные скобки:

filter: function(keyName) { 
    this[keyName + 'ToFilter']splice(index, 1); 
} 

Если существующая переменная, items (от вопроса), содержит значение релевантности Wi тонкой функции, то вам также необходимо передать это в качестве аргумента также:

filter: function(keyName, items) { 
    this[keyName + 'ToFilter']splice(index, 1); 
} 
Смежные вопросы