我想返回一个函数并在调用模块中对其进行评估

I want to return a function and have it evaluated in the calling module

本文关键字:模块 调用 评估 返回 函数 一个      更新时间:2023-09-26

我不确定为什么这不起作用。 我将我的函数包装在一个匿名函数中,相信在其他地方调用它之前不会对其进行评估。 但是我收到一个关于未定义"dropchart"的错误,因此在此模块中对其进行了评估。

define(function() {
  var stage = {
    before: {
      createCanvas: function() {
        return function() {
          before(function(done) {
            this.canvas = new dropchart.Canvas({
              canvas: argsFor.canvas(),
              data: argsFor.data()
            });
            done();
          });
        };
      }
    }
  };
  return stage;
});

这是从另一个模块调用它的方式:

define(['jquery', 'dropchart', 'argsFor', 'stage'], 
  function($, dropchart, argsFor, stage) {
  var should = chai.should();
  var xAxisSpec = {
    run: function() {
      describe('xAxis', function() {
        stage.before.createCanvas();
        ...

stage 模块具有argsFordropchart依赖项,而不是调用模块。

调用模块无法以某种方式使它们可用于stage模块,除非您将它们作为参数传递stage.before.createCanvas或者将它们放在全局范围内,这违背了要求的全部要点.js