[英]call javascript object method with a variable
我是面向對象的javascript的新手。 我有一個變量,其值我想用來調用對象的方法。 像這樣..
var foo = {
bar: function() {},
barr: function() {}
}
現在有一個變量,其值可以是兩個方法的名稱bar
和barr
任何一個我想用類似的東西來調用它們
var myvar = 'bar';
foo.{myVar}();
所以我假設你想根據字符串動態調用適當的函數。 你可以這樣做:
var myVar = 'bar';
foo[myVar]();
或者你也可以使用eval
但是風險更高(容易發生注射攻擊)而且速度較慢( 不要這樣做! :P):
var myVar = 'bar';
eval('foo.' + myVar + '()');
由於您可以通過下標表示法訪問對象的元素,因此以下內容將執行您要查找的內容:
var myVar = 'bar';
foo[myVar]();
你可以說:
foo[myVar]();
由於foo
是一個JavaScript對象,因此該代碼將引用myVar
變量中包含的成員。
var foo = {
bar: function() { alert('bar'); },
barr: function() { alert('barr'); }
}
var myvar = 'bar';
foo[myvar](); // alert 'bar'
使用類似: foo[myVar]();
它應該是這樣的
foo[myvar]();
我確定有更好的方法,但你可以使用eval()
:
var myvar = "bar";
var code = "foo." + myvar + "();"
eval(code);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.