我目前正在学习Javascript,但我发现有些东西对我来说没有多大意义。
在ArcGIS网站上的示例中,有这段代码
var map
require(["esri/map", "dojo/domReady!"], function(Map) {
map = new Map("mapDiv", {
center: [-56.049, 38.485],
zoom: 3,
basemap: "streets"
});
});
当Map是function(Map)的参数时,我不知道如何执行“新Map”。为了能够使用new,则Map必须是一种类型,而我还没有看到其他语言中的类型是参数。
关于Javascript的有趣之处在于,实际上没有类。Javascript中的类的等效项只是一种特殊的功能。实际上,请忘记上一句话中的“特殊”(只是想减轻打击)。任何功能可以“作为一类”,并与被实例化的new
操作(虽然它确实是唯一有用的当该功能受让人的东西this
,因此产生的对象获得公共方法和属性)。
Javascript中的函数是一等公民。可以将函数分配给变量,并且可以将函数作为参数传递给其他函数。这使得将一个函数传递给另一个函数,然后使该另一个函数实例化是完全合法的new
。
是的,这确实是一个非常奇怪的概念,它被用来包装面向类的编程语言。但是一旦您理解它,它就会变得非常直观。
因此,您在问题中发布的代码将发生以下情况:
require
执行时,它调用一个匿名函数,该函数将 Map
map
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句