我正在使用Vue.js,我想知道如何以动态的方式调用javascript属性。让我们说我将一个参数传递给这样的函数:
filter: function(items) {
this.countriesToFilter.splice(index, 1);
},
如何以动态方式替换my.countriesToFilter调用中的国家/地区,以便我最终得到:
this.itemsToFilter.splice(index, 1);
答案 0 :(得分:1)
也许这样?
filter: function(items) {
var whatToFilter = items + 'ToFilter';
this[whatToFilter].splice(index, 1);
},
答案 1 :(得分:1)
答案是肯定的。
var name = "itemsToFilter";
var myArray = eval("this." + name);
// use myArray
您还可以添加安全检查,这样就不会在未定义的
上调用splice
if (typeof myArray != 'undefined') {
myArray.splice(index, 1)
}
答案 2 :(得分:1)
我可以想象这个工作的唯一方法是将字符串传递给函数,并使用方括号将该字符串插入到对象表示法中:
filter: function(keyName) {
this[keyName + 'ToFilter']splice(index, 1);
}
如果您现有的变量items
(来自问题)在函数中包含相关值,那么您还需要将其作为参数传递:
filter: function(keyName, items) {
this[keyName + 'ToFilter']splice(index, 1);
}