[英]Javascript : use string to invoke function
我的問題很簡單。 在Php中,可以調用函數名稱中包含字符串的函數。 范例:
function setName(name){
$this->name = name;
}
$string = 'Name';
$method = 'set'.$string;
if(method_exists($this, $method)
$this->$method($_POST['name']);
所以我想知道Javascript中是否有類似的東西……現在,我正在使用一個開關來檢查主體ID並調用該函數。 這是我的代碼:
switch($('body').attr('id'))
{
case 'index':
app.index.init();
break;
case 'login':
app.login.inint();
break;
};
app.index = {
init : function(){
console.log('Hola Mundo');
}
};
所以我想知道我是否可以做這樣的事情:
var id = $('body').attr('id');
app.id.init();
感謝您的回答。
是。
app[id].init();
但是請考慮一下,如果James指出,如果未在app對象中定義您的身體ID,則可能會導致錯誤。
可以辦到。 您不必在開關中檢查它。 由於id屬性是一個字符串值,因此您可以使用objectInstance[prop]
方法直接檢查屬性是否存在,如果存在,則可以安全地調用它:
app.index = {
init : function(){
console.log('Hola Mundo');
}
};
app.login = {
init : function(){
console.log('Hola Mundo');
}
};
var appProp = $('body').attr('id'); /* or var id = $('body').id; */
if(app[appProp]){
app[appProp].init();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.