【问题标题】:Javascript function out of scope - require jsJavascript 函数超出范围 - 需要 js
【发布时间】:2015-09-04 14:05:44
【问题描述】:

我有一个名为 ui.js 的 JS 文件,其中的一个函数会做一些事情。这个文件看起来像这样

define(function (require) {
    function someName(param1, param2, param3) {
    ......
    };
}

在另一个 JS 文件中,我这样调用我所有的 JS 文件:

define(function (require) {
  var $ = require('jquery');
  var functionName = require('ui');

  $(function() {

     function one() {
         .....
         someName(value1, value2, value3);
     }
  });
});

函数一正常工作,但是当我在其中调用函数 someName 时,我得到一个错误 someFunction is not defined。我必须超出范围,但我不知道如何使它工作。我尝试在 someName 函数的外部和内部进行 console.log,我从外部获取日志,但没有从内部获取日志。有什么想法吗?

///// 编辑 我只是在这里打错了,我的代码中有右括号

【问题讨论】:

  • 我认为您在第二段代码中缺少});。可能只是一个复制/粘贴问题。如果你格式化代码,你会看到它。
  • & 不是有效的变量名!
  • ups,对不起,应该是 $

标签: javascript function scope requirejs


【解决方案1】:

我猜你正在寻找这个:

ui.js

define(function() {
  return function(param1, param2, param3) {
    ...
  };
}

someOtherModule.js

define(["jquery", "ui"], function($, ui) {
  $(function() {
    ...
    ui(v1, v2, v3);
  });
});

如果ui.js应该提出几个方法:

ui.js

define(function() {
  return {
    f1: function() {
      ...
    },
    f2: function() {
      ...
    }
  };
}

someOtherModule.js

define(["jquery", "ui"], function($, ui) {
  $(function() {
    ...
    ui.f1();
    ui.f2();
  });
});

【讨论】:

  • 谢谢!你的前两个街区完成了这项工作。
  • @gogo_rulez 很高兴我能帮上忙 :) 但我建议您阅读 RequestJS API,它非常完整且具有教育意义。
猜你喜欢
  • 2010-11-22
  • 2012-12-15
  • 2013-04-15
  • 1970-01-01
  • 1970-01-01
  • 2014-10-15
  • 2018-07-18
  • 1970-01-01
  • 2018-03-30
相关资源
最近更新 更多