Kode adalah sebagai berikut:
<body>
<a href="javascript:;" id="test">hello</a>
</body>
<script type="text/javascript">
document.getElementById("test").addEventListener("click", function () {
test()
}, false)
function test() {
var postTypes = new Array('hello', 'there')
(function() { alert('hello there') })()
}
</script>
Ini akan melempar:
"Tidak Tertangkap TypeError: objek bukan fungsi"
Jika saya membungkus pemanggilan / pemanggilan fungsi anonim dalam kumpulan tanda kurung lain, itu akan menjalankan peringatan, tetapi masih memberi saya kesalahan. Jika saya meletakkan titik koma setelah definisi "var postTypes" maka itu akan baik-baik saja.
Saya dituntun untuk percaya bahwa javascript tidak memerlukan titik koma, jadi saya menebak bahwa ada beberapa aturan asosiasi aneh dari aplikasi fungsi yang saya tidak sepenuhnya mengerti. Mengapa saya mendapatkan kesalahan ini?