繁体   English   中英

在Require JS define function中如何处理参数

[英]How arguments are handled in Require JS define function

以下代码取自Internet上的教程。

purchase.js

define(["credits","products"], function(credits,products) {

  console.log("Function : purchaseProduct");

  return {
    purchaseProduct: function() {

      var credit = credits.getCredits();
      if(credit > 0){
        products.reserveProduct();
        return true;
      }
      return false;
    }
  }
});

define函数的第二个参数是匿名函数。 此函数有两个参数,即信用和产品。 这两个参数在代码中用作对象。 这些对象如何分配给这两个参数?

credits.js

define(function() {
  console.log("Function : getCredits");

  return {
    getCredits: function() {
      var credits = "100";
      return credits;
    }
  }
});

prodcts.js

define(function(product) {

  return {
    reserveProduct: function() { 
         console.log("Function : reserveProduct");
      return true;
    }
  }
});

当require()决定调用匿名的“第二个参数”函数(在加载所有依赖项时会发生)时,它将首先使用第一个参数中的字符串数组查找您碰巧要查询的不同模块。 然后,它将创建一个匹配数组,其中包含从这些脚本返回的实际模块对象,并使用该数组调用您的匿名函数。

如果可以帮助理解,有时与匿名函数的参数相比,如果有人偶然以错误的顺序列出了一个依赖关系,我的组织几乎看不到运行时问题。 (因此,如果匿名函数的参数顺序相反,则它们的分配将被颠倒,代码将无法正常工作)

RequireJS将加载这两个文件(product.js文件名拼写错误),并且它们具有返回对象的匿名函数。 这些对象然后被馈送到函数中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM