(function() {
var content = [
{
title: 'My awesome blog post',
thumbnail: 'images/bane.jpg',
},
{
title: 'My second awesome blog post',
thumbnail: 'images/joker.jpg',
},
],
template = $.trim($('#blogTemplate').html()),
frag = '';
$.each(content, function(index, obj) {
frag +=
template.replace(/{{title}}/ig, obj.title)
.replace(/{{thumbnail}}/ig, obj.thumbnail);
});
$('body').append(frag);
})();
你好的理解,增加變量的作用域和聲明
我只是想知道爲什麼它是被裝在自調用匿名函數內的代碼塊不能使用var前綴以下變量聲明關鍵字像這樣:
var template = $.trim($('#blogTemplate').html()),
var frag = '';
添加var關鍵字的局部變量在這個函數 - template
和frag
似乎打破我的代碼,我真的不明白爲什麼,但是如果我宣佈template
和frag
在全局作用域之外,如下所示,那麼我的代碼就可以工作。
var template;
var frag;
如果這涉及範圍和任何人有時間來解釋它將不勝感激。理想情況下,我想用var關鍵字的前綴template
和frag
來提高可讀性。
您是否在匿名函數之外使用template/frag? – sroes
只需要學習語法檢查你的代碼。在對象和數組中有拖尾逗號(將在IE中斷開)並且不能用逗號分隔2'var' – charlietfl
否我不在匿名函數之外使用template/frag – user1554264