簡體   English   中英

使用動態名稱引用JavaScript屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM