CMD的几个常用API

一: define

全局函数,用来定义模块。

参数:

1.id 模块标识(可省略)

2.deps模块依赖(比如jquery)(可省略)

3.factory:可能是:

(1)对象

(2)字符串

①和②通常表示模块的接口

(3)函数:表示模块的构造方法,执行该构造方法,可以获取该模块向外提供的接口。

factory为函数的情况,在执行时,会默认传入三个参数:

①require是一个方法,接受 模块标识 作为唯一参数,用来获取其他模块提供的接口

②exports

③module

二:require

require是一个方法,接受 模块标识 作为唯一参数,用来获取其他模块提供的接口,同步往下执行

三:require.async

异步回调执行,用来加载可延迟异步加载的模块,参数有两个:id和callback

require.async 方法用来在模块内部异步加载模块,并在加载完成后执行指定回调。callback 参数可选。

四:exports

exports 是一个对象,用来向外提供模块接口,exports 对象增加成员,还可以使用 return 直接向外提供接口

给exports对象增加成员,

(1)define(function(require) {

// 通过 return 直接提供接口
  return {
    foo: ‘bar‘,
    doSomething: function() {}
  };
(2)define(function(require, exports, module) {

// 正确写法
  module.exports = {
    foo: ‘bar‘,
    doSomething: function() {}
  };

});

});

五:module.exports:

当前模块对外提供的接口。

传给 factory 构造方法的 exports 参数是 module.exports 对象的一个引用。只通过 exports 参数来提供接口,有时无法满足开发者的所有需求。 比如当模块的接口是某个类的实例时,需要通过module.exports 来实现,

define(function(require, exports, module) {

  // exports 是 module.exports 的一个引用
  console.log(module.exports === exports); // true

  // 重新给 module.exports 赋值
  module.exports = new SomeClass();

  // exports 不再等于 module.exports
  console.log(module.exports === exports); // false

});

对 module.exports 的赋值需要同步执行,不能放在回调函数里,如下面这种方法就是错误的:

define(function(require, exports, module) {

  // 错误用法
  setTimeout(function() {
    module.exports = { a: "hello" };
  }, 0);

});
时间: 2024-12-26 03:11:24

CMD的几个常用API的相关文章

< python音频库:Windows下pydub安装配置、过程出现的问题及常用API >

< python音频库:Windows下pydub安装配置.过程出现的问题及常用API > 背景 刚从B站上看过倒放挑战之后也想体验下,心血来潮一个晚上完成了基本的实现.其中倒放与播放部分使用了pydub这个音频库,十分快捷方便,但是它完整一套的配置让我还是踩了几个坑.特将其配置过程记录于此,方便大家. Windows10系统 < Pydub in Github > 安装Pydub Anaconda:打开Anaconda prompt,activate切换至工作环境下,键入pip

C++ 中超类化和子类化常用API

在windows平台上,使用C++实现子类化和超类化常用的API并不多,由于这些API函数的详解和使用方法,网上一大把.本文仅作为笔记,简单的记录一下. 子类化:SetWindowLong,GetWindowLong,CallWindowProc,FindWindowEx 超类化:GetClassInfoEx,RegisterClassEx,UnRegisterClass 以上函数在代码中的使用见<C++ 中超类化和子类化> VC中基于SDK编程的窗口子类化 VC中基于SDK编程的窗口子类化的

List容器——ArrayList及常用API

List: ①   List容器是有序的collection(也称为序列).此接口的用户可以对List容器中每个元素的插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素.List容器允许插入重复的值,包括null; ②   最常见的两个List接口的实现类是ArrayList和LinkedList; ArrayList及常用API: ①   ArrayList—动态数组; ②   ArrayList类扩展了AbstractList并实现了List接口

hadoop常用api编写

package hsfs常用api; import java.io.ByteArrayInputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.net.URI;import java.net.URISyntaxException; import org.apache.hadoop.conf.Configuration;

hadoop java接口及常用api

# java接口及常用api package com.yting.hadoop.hdfs; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputS

java:Hibernate框架(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态)

1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件  准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configurati

STL vector常用API

1.容器:序列容器(时间决定).关联式容器(容器中的数据有一定规则) 2.迭代器:通过迭代器寻找.遍历容器中的数据 vetor的使用:数据遍历与输出 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<vector> //向量 动态数组 #include<algorithm> //算法头文件 #include<string> using namespace std; void myPrint

Javascript操作DOM常用API总结

Javascript操作DOM常用API总结 原文地址:http://luopq.com/2015/11/30/javascript-dom/ 类型 Node类型(ELEMENT_NODE:1 ATTRIBUTE_NODE:2 TEXT_NODE:3 COMMENT_NODE:8``DOCUMENT_NODE:9 DOCUMENT_FRAGMENT_NODE:11) 节点创建型(createElement createTextNode cloneNode createDocumentFragme

Collection类及常用API

Collection类及常用API Collection—类集工具类,定义了若干用于类集和映射的算法,这些算法被定义为静态方法,具体查看api文档; a)  public static void sort(List<T> liet) b)  public static int binarySearch(List<T> list,T key) c)  public static void reverse(List<?> list) d)  public static vo