Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么自定义传单控件添加为大写和小写?_Javascript_Leaflet - Fatal编程技术网

Javascript 为什么自定义传单控件添加为大写和小写?

Javascript 为什么自定义传单控件添加为大写和小写?,javascript,leaflet,Javascript,Leaflet,我正在查看扩展传单文档,以便添加 它包含以下代码段,作为添加简单水印控件的示例: L.Control.Watermark = L.Control.extend({ onAdd: function(map) { var img = L.DomUtil.create('img'); img.src = '../../docs/images/logo.png'; img.style.width = '200px'; retur

我正在查看扩展传单文档,以便添加

它包含以下代码段,作为添加简单水印控件的示例:

L.Control.Watermark = L.Control.extend({
    onAdd: function(map) {
        var img = L.DomUtil.create('img');

        img.src = '../../docs/images/logo.png';
        img.style.width = '200px';

        return img;
    },

    onRemove: function(map) {
        // Nothing to do here
    }
});

L.control.watermark = function(opts) {
    return new L.Control.Watermark(opts);
}

L.control.watermark({ position: 'bottomleft' }).addTo(map);

为什么控件同时分配给大写(
L.control.Watermark
)和小写
L.control.Watermark
变量?这是扩展JavaScript库时的常见约定吗

如果您查看名为的教程,您将看到名为:

大多数传单类都有相应的工厂函数。工厂函数与类具有相同的名称,但使用小写而不是大写


基本上,lowerCamelCase函数是实例化相应类的方便方法。你会发现很多关于为什么使用工厂函数而不是构造函数的文章,看起来相当全面

不幸的是,JavaScript中没有真正的约定

大多数OOP语言都有使用大写字母(PascalCase)的约定类

factory模式主要避免您使用
new
关键字。为了区分两者,在小叶中前者使用PascalCase,后者使用小写

但是你会发现很多其他的JS库在它们的工厂中使用PascalCase(大多数时候它们在API中没有提供等价的类)

要了解更多关于为传单选择的公约的信息,您可以看一看(这远不是一个明确的决定)