如何在 JS 中创建一个函数
Posted
技术标签:
【中文标题】如何在 JS 中创建一个函数【英文标题】:How to make a function in JS 【发布时间】:2017-11-03 10:45:07 【问题描述】:这是一个在我的脚本中重复几次的代码,所以我想将其作为函数。我希望它是最基本的功能。另外,如果有人能给我一个例子,我会非常感谢我如何在我的代码中调用一个函数。非常感谢您!
通过代码更改的内容粗体(为了将来的目的:我正在使用 OpenLayers3 从 GeoServer 调用 WFS 层):
// format used to parse WFS GetFeature responses
var **layer**GeojsonFormat = new ol.format.GeoJSON();
// source
var **layer**Source = new ol.source.Vector(
loader: function(extent, resolution, projection)
var url = 'http://localhost:8080/geoserver/wfs?service=WFS&' +
'version=1.1.0&request=GetFeature&typename=**ws**:**layer**&' +
'outputFormat=text/javascript&format_options=callback:**layer**LoadFeatures' +
'&srsname=EPSG:3765&bbox=' + extent.join(',') + ',EPSG:3765';
// use jsonp: false to prevent jQuery from adding the "callback"
// parameter to the URL
$.ajax(url: url, dataType: 'jsonp', jsonp: false);
,
strategy: ol.loadingstrategy.bbox
);
/**
* JSONP WFS callback function.
* @param Object response The response object.
*/
window.**layer**LoadFeatures = function(response)
**layer**Source.addFeatures(**layer**GeojsonFormat.readFeatures(response));
;
// layer
var **layer**Layer = new ol.layer.Vector(
source: **layer**Source,
style: **layer**Style
);
稍后,每个图层都必须包含在地图中,因此我还需要返回 var 的 layerLayer:
// map
var map = new ol.Map(
target: document.getElementById('map'),
renderer: 'canvas',
view: olview,
layers: [layerOneLayer, layerTwoLayer, layerThreeLayer, ...],
logo: false
);
【问题讨论】:
**layer**Layer
是实际的变量名吗?
layer 是可通过整个代码更改的段。所以它会是这样的:layer = layerOne,然后是 layer =第二层。与 ws 相同
【参考方案1】:
将代码包装在一个函数中,然后像这样调用它 - someFunction()
function someFunction()
// format used to parse WFS GetFeature responses
var * * layer * * GeojsonFormat = new ol.format.GeoJSON();
// source
var * * layer * * Source = new ol.source.Vector(
loader: function(extent, resolution, projection)
var url = 'http://localhost:8080/geoserver/wfs?service=WFS&' +
'version=1.1.0&request=GetFeature&typename=**ws**:**layer**&' +
'outputFormat=text/javascript&format_options=callback:**layer**LoadFeatures' +
'&srsname=EPSG:3765&bbox=' + extent.join(',') + ',EPSG:3765';
// use jsonp: false to prevent jQuery from adding the "callback"
// parameter to the URL
$.ajax(
url: url,
dataType: 'jsonp',
jsonp: false
);
,
strategy: ol.loadingstrategy.bbox
);
/**
* JSONP WFS callback function.
* @param Object response The response object.
*/
window.* * layer * * LoadFeatures = function(response) * * layer * * Source.addFeatures( * * layer * * GeojsonFormat.readFeatures(response));
;
// layer
var * * layer * * Layer = new ol.layer.Vector(
source: * * layer * * Source,
style: * * layer * * Style
);
someFunction()
【讨论】:
我应该以某种方式传递层和 ws 的名称,因为它们是可变参数 是的,稍后您将作为变量传递给函数【参考方案2】:你可以用这个来做函数。
function functionName(parameter1, parameter2)
// your code
// call function
functionName();
【讨论】:
以上是关于如何在 JS 中创建一个函数的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Sequelize 中的导入模型中创建自定义方法或函数