在javascript中,什么是构造函数? 什么不是?
我正在使用jQuery的插件。 它在webkit中运行良好,但是当我在firefox中尝试它时,我得到以下firefox错误:
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 });
什么是构造函数和firefox如何向我指出它?
http://dev.resihop.nu是该网站
任何本机函数都可以作为构造函数调用(即使它不是设计的)。 任何不可调用的东西也不能是构造函数。 例如, new 3
给出了相同的错误。
在您的网页中, google.maps.Geocoder
只是undefined
,这当然无济于事。 查看Google的地图脚本,它无法加载Geocoder模块,因为它使用document.write
来执行此操作,这个方法必须在解析时从HTML文档中包含的运行,而不是使用DOM脚本导入就像你在这里做的那样。
它当然不希望从通过客户端XSLT加载的页面运行。 这将给你很多浏览器问题和零SEO存在。 这种疯狂的目的是什么?
构造函数是函数(返回函数名称类型的对象),当您将new
与该函数的名称结合使用时,该函数将被调用,例如:
function Person(name, age) { //blah } var me = new Person("Jacob", 20);
你可以像这样使用google.maps.geocoder:
$('.to, .from').geo_autocomplete(new google.maps.Geocoder({ mapkey:'ABQIAAAAbnvDoAoYOSW2iqoXiGTpYBT2yXp_ZAY8_ufC3CFXhHIE1NvwkxQNumU68AwGqjbSNF9YO8NokKst8w', selectFirst: false, minChars: 3, cacheLength: 50, width: 235, scroll: true, scrollHeight: 330 }));
实例化对象时,例如创建对象的实例,构造函数是在对象中调用的第一个方法。
当你打电话的时候
new google.maps.Geocoder
…您正在尝试使用new关键字实例化对象的无参数构造函数。 在这种情况下,Geocoder不是可以在没有参数的情况下实例化的类,或者根本不是。