Dapatkah saya secara dinamis memanggil metode objek yang memiliki nama metode sebagai string? Saya akan membayangkannya seperti ini:
var FooClass = function() {
this.smile = function() {};
}
var method = "smile";
var foo = new FooClass();
// I want to run smile on the foo instance.
foo.{mysterious code}(); // being executed as foo.smile();
Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'FooClass'
siapa lagi?Properti objek dapat diakses melalui notasi array:
sumber
Saat kita memanggil fungsi di dalam sebuah objek, kita perlu memberikan nama fungsi tersebut sebagai String.
sumber
Metode dapat dipanggil dengan eval
eval("foo." + method + "()");
mungkin bukan cara yang sangat baik.sumber
foo
adalah{ fields: [{ id: 1 }] }
danmethod
adalahfields[0]?.id
, tapi aku harus menghapus()
dari jawaban Anda yang diusulkanSaya ingin meninggalkan contoh di sini untuk ini. Sebagai contoh; saya ingin memanggil metode pemeriksaan dinamis saat mengirimkan formulir.
sumber