JavaScript中的“定义”是什么(除了显而易见的)?

2020/10/28 06:42 · javascript ·  · 0评论

我在文档中搜索了很多内容,但是在任何地方都找不到。

我正在使用Aloha,并且想使用他们的侧边栏原型来创建自己的附加到其他插件功能的新侧边栏。

他们的sidebar.js以此开始,但是我一生都找不到能解释其含义的文档。

define( [
    'aloha/core',
    'aloha/jquery',
    'aloha/selection'
], function (Aloha, jQuery, Selection, Plugin) {

然后在该包装器中继续定义一堆函数,vars然后再执行一些proptotypes-我可以马上动手...

那是什么意思,或者在哪里可以找到解释?

我不能肯定地说不看完整的脚本,但是它很可能是defineRequireJS中函数,特别是该函数的“带有依赖项的定义”形式。它用于定义“模块”:

模块与传统脚本文件的不同之处在于,它定义了一个范围广泛的对象,可避免污染全局名称空间。它可以显式列出其依赖关系,并在不需要引用全局对象的情况下获取这些依赖关系的句柄,而是将依赖关系作为定义模块的函数的参数来接收。

的“用依赖项定义”形式define描述如下:

如果模块具有依赖项,则第一个参数应为依赖项名称数组,第二个参数应为定义函数。加载所有依赖项后,将调用该函数以定义模块。该函数应返回定义模块的对象。

这是用于编写模块的AMD模式,当您需要基本异步导入模块而不是commonJS之类的模块时,AMD代表“异步模块定义”。

define(['module1', 'module2'], function(module1, module2) {
  console.log(module1.sayHi());
});

Define接受一个依赖项数组,一旦所有这些以非阻塞方式加载到后台(异步)中,define就会调用回调函数,该回调函数又接受参数(在这种情况下为依赖项)。

需要注意的另一件事是,这些模块中的每个模块也都需要使用“ define”关键字进行定义。因此,例如,module1的定义如下:

define([], function() {

  return {
    sayHi: function() {
      console.log('Hi Hi');
    },
  };
});

这种写模块的方式(AMD)允许您在编写时考虑到浏览器的兼容性(没有nodeJS那样的require()),并且还可以定义许多格式,包括对象,JSON等,而commonJS需要将模块作为对象。

请记住,AMD有它自己的失败。希望这对某人有帮助。

本文地址:http://javascript.askforanswer.com/javascriptzhongdedingyishishenmechulexianeryijiande.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!