如何在js函数中调用另外一个函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在js函数中调用另外一个函数相关的知识,希望对你有一定的参考价值。

具体调用情况需要看js方法是怎么写的。①如果是最简单的一个方法:functiuon dome1() //.代码块//调用方法就是:dome1();②如果是闭包形式:function dome1() function dome2() return function dome3() //这里可以访问dome1方法内的dome3方法,dome2方法对与dome1方法外部是不可见的。③如果是一个对象形式的:var obj= dome1:function(key,value), dome2:function();//访问dome1和dome2方法:obj.dome1(1,2);obj.dome2();其他的情况需要看具体的代码。 参考技术A 比如a=function()alert("111")想要调用function b
那么就是:
a()
b();
本回答被提问者采纳

如何在 JS 中创建一个函数

【中文标题】如何在 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函数中调用另外一个函数的主要内容,如果未能解决你的问题,请参考以下文章

如何在js函数中调用另外一个函数

JS中,如何实现在调用一个方法时用另外一个方法的返回值做参数

请教如何在一个js文件中调用另外一个js文件的变量

js 函数如何去调用另一个函数中的函数?

【急】js中调用ActiveX控件中的函数?

如何在 JS 中创建一个函数