如何在对象文字中进行一些错误处理?
至少我希望它像这样工作:
window.App={
Variables:{
"views_data":
try{
json_parse(Drupal.settings.royal)
}
catch(e){
JSON.parse(Drupal.settings.royal)
}
}
}
如何在对象文字中进行一些错误处理?
至少我希望它像这样工作:
window.App={
Variables:{
"views_data":
try{
json_parse(Drupal.settings.royal)
}
catch(e){
JSON.parse(Drupal.settings.royal)
}
}
}
您可以使用立即调用的函数:
window.App = {
Variables: {
views_data: (function(){
var data;
try{
data = json_parse(Drupal.settings.royal)
}
catch(e){
data = {}
}
return data;
}())
}
}
作为try{...}catch(err){...}
控制结构,您不能将其添加到 javascript 中的对象文字中。根据您想要存储的位置Drupal.settings.royal
,您可以这样编写对象:
window.App = {
Variables: {
views_data: null // this is optional
}
};
现在,当您的对象准备就绪时,您可以尝试将解析后的 json 添加到其中:
try{
window.App.Variables.views_data = json_parse(Drupal.settings.royal);
}catch(err){
window.App.Variables.views_data = JSON.parse(Drupal.settings.royal);
}
干净整洁。
1) 使用立即调用函数表达式
views_data : (function () {
var result = "",
json = Drupal.settings.royal;
try { result = json_parse(json); }
catch (e) { result = JSON.parse(json); }
return result;
}())
2) 除非您的 有什么特别之处json_parse
,否则我实际上建议您以相反的方式执行此操作 -JSON.parse
改为使用浏览器的 . 本机实现将比您自己编写的任何东西都要快。JSON
如果不存在,则回退到手写解决方案。当然,前提是您在实现中没有做任何特别的事情。