我正在使用jQuery插件。它在WebKit的偉大工程,但是當我嘗試在Firefox我碰到下面的Firefox錯誤:在JavaScript中,什麼是構造函數?而什麼不是?
google.maps.Geocoder is not a constructor
$('.to, .from').geo_autocomplete(new google.maps.Geocoder, {
這裏是所有的jQuery:
$('.to, .from').geo_autocomplete(new google.maps.Geocoder, {
mapkey: 'ABQIAAAAbnvDoAoYOSW2iqoXiGTpYBT2yXp_ZAY8_ufC3CFXhHIE1NvwkxQNumU68AwGqjbSNF9YO8NokKst8w',
selectFirst: false,
minChars: 3,
cacheLength: 50,
width: 235,
scroll: true,
scrollHeight: 330
});
什麼是構造函數和howcome Firefox是它指向了對我來說?
嚴格來說,規範說'new'調用'[[Construct]]'內部方法,而普通函數調用使用'[[Call]]'。現在我說我不知道什麼樣的事情會有一個,但不是另一個,但也許通過全局名稱空間暴露的東西可能 - 「新setTimeout()」做什麼? – Pointy 2010-10-28 16:00:12
是的,這就是爲什麼我說* native *函數。 :-)其實我認爲根據ECMA262-5,*內建函數不能用作構造函數,不應該有'[[Construct]]','TypeError'也應該。實際發生的事情高度依賴於瀏覽器和功能。歌劇似乎正確。 Chrome調用'new encodeURIComponent('x')'作爲構造函數(返回新的Object,因爲返回的字符串不是對象)。Firefox不同(例如'new setTimeout'給出了一個不同的內部錯誤;'new encodeURIComponent('x')'返回字符串!)。總結:啊! – bobince 2010-10-28 16:16:29
感謝您的信息,雖然我不知道如何解決這個問題,但是你讓我開始了atleast! – Himmators 2010-10-29 09:28:20