![](/img/trans.png)
[英]Is a "dynamic" object reference in JavaScript based on some parents property name possible?
[英]Reference a javascript property with a dynamic name
我正在使用Vue.js,我想知道如何以動態方式調用javascript屬性。 假設我將參數傳遞給這樣的函數:
filter: function(items) {
this.countriesToFilter.splice(index, 1);
},
如何以一種動態方式替換this.countriesToFilter調用中的國家/地區 ,所以我最終得到了:
this.itemsToFilter.splice(index, 1);
也許是這樣嗎?
filter: function(items) {
var whatToFilter = items + 'ToFilter';
this[whatToFilter].splice(index, 1);
},
答案是肯定的。
var name = "itemsToFilter";
var myArray = eval("this." + name);
// use myArray
您還可以添加安全檢查,以免在未定義的情況下調用splice
if (typeof myArray != 'undefined') {
myArray.splice(index, 1)
}
我可以想象的唯一工作方式是,如果將字符串傳遞給函數,然后使用方括號將字符串插入對象表示法中:
filter: function(keyName) {
this[keyName + 'ToFilter']splice(index, 1);
}
如果您現有的變量(來自問題)的items
在函數中包含相關性值,那么您還需要將其作為參數傳遞:
filter: function(keyName, items) {
this[keyName + 'ToFilter']splice(index, 1);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.