如何在對象文字中做一些錯誤處理?
至少我希望它是這樣工作的:如何處理對象文字中的錯誤處理?
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;
}())
}
}
謝謝......你說的很對;-P – Jurudocs 2013-03-27 21:25:03
由於try{...}catch(err){...}
是控制結構,你可以把它添加到對象文本在JavaScript中。根據你想在哪裏存儲Drupal.settings.royal
,你可以寫你的對象是這樣的:
window.App = {
Variables: {
views_data: null // this is optional
}
};
現在作爲你的目標是ready',你可以嘗試添加解析JSON它:
try{
window.App.Variables.views_data = json_parse(Drupal.settings.royal);
}catch(err){
window.App.Variables.views_data = JSON.parse(Drupal.settings.royal);
}
很好,很乾淨。
好的。但是這個問題在**對象文字中明確提出**。 – Lix 2013-03-27 21:23:23
@Lix你說得對 - 對不起,沒有看到。 – 2013-03-27 21:25:15
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
不存在。當然,那就是如果你在實現中沒有做任何特別的事情。
@Lix感謝您的編輯......所以這不是一個noob問題; -P? – Jurudocs 2013-03-27 21:26:34
不客氣@jur!不管你的問題是否是「小白鼠」,取決於誰在閱讀它。無論如何,我的編輯主要是將代碼格式化得更好一些,而當我處理代碼時,我刪除了與實際問題無關的任何內容。當一年左右有人遇到這篇文章時,你是一個新的JS開發者的事實將是無關緊要的。看看[在這個meta post](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts)瞭解更多關於什麼是在帖子中被認爲是「噪音」。 – Lix 2013-03-27 21:29:51