首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

模块

是一种特殊代码组织方式,普通模块代码是Sub过程、或者Function函数,而模块代码,它都属于这个,在它内部也可以有Sub过程、或者Function函数,但和普通模块里不同是,它在使用之前...,必须要先创建实例,也就是和VBA使用外部对象字典等那样,要New一个: Set c = New 然后就可以像使用对象那样,调用方法、属性等。...1、创建: 在VBA编辑器里,点击插入-模块,就插入了一个叫做1东西,和普通模块一样是,展现给我们就是一个写代码地方,尽管什么都没有写,但是这个操作已经创建了一个新了,在普通模块中已经可以去使用了...,一般都要在模块顶部定义一个私有变量来记录属性值。...设置好后,就可以在普通模块里去使用了: Sub TestClass() Dim c As 1 Set c = New 1 c.TestProperty = 1

72040
您找到你想要的搜索结果了吗?
是的
没有找到

JavaScript 模块循环加载

本文介绍JavaScript语言如何处理"循环加载"。目前,最常见两种模块格式CommonJS和ES6,处理方法是不一样,返回结果也不一样。...一、CommonJS模块加载原理 介绍ES6如何处理"循环加载"之前,先介绍目前最流行CommonJS模块格式加载原理。 CommonJS一个模块,就是一个脚本文件。...二、CommonJS模块循环加载 CommonJS模块重要特性是加载时执行,即脚本代码在require时候,就会全部执行。...exports.done = true; 三、ES6模块循环加载 ES6模块运行机制与CommonJS不一样,它遇到模块加载命令import时,不会去执行模块,而是只生成一个引用。...等到真的需要用到时,再到模块里面去取值。 因此,ES6模块是动态引用,不存在缓存值问题,而且模块里面的变量,绑定其所在模块。请看下面的例子。

1.3K50

JavaScript模块探索

随着JS项目越来越大,再依靠简单命名空间来解决冲突不是很可取,项目大了之后不只有变量冲突问题,还有模块依赖以及加载策略问题等,这次就介绍现存几种模块化、依赖解决方案。...AMD AMD规范起源于CommonJS一个草案,由于没有达成一致所以后来就分道扬镳。 定义模块: define(id?, dependencies?.../add').add;//被引用模块若是挂在exports上则导出是一个对象,所以需要指定到具体方法,若模块是直接赋值给module.exports上则不需要。...http://javascript.ruanyifeng.com/nodejs/module.html CMD 定义、使用方法类似AMD,只是模块执行时机和顺序不同。...具体参考:https://github.com/seajs/seajs/issues/242 ES6 module ES6最具有意义部分,有望成为浏览器和服务器通用模块解决方案。

52250

Javascript模块化编程(一):模块写法

网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等......开发者不得不使用软件工程方法,管理网页业务逻辑。 Javascript模块化编程,已经成为一个迫切需求。...理想情况下,开发者只需要实现核心业务逻辑,其他都可以加载别人已经写好模块。 但是,Javascript不是一种模块化编程语言,它不支持""(class),更遑论"模块"(module)了。...(正在制定中ECMAScript标准第六版,将正式支持""和"模块",但还需要很长时间才能投入实用。) Javascript社区做了很多努力,在现有的运行环境中,实现"模块"效果。...本文总结了当前"Javascript模块化编程"最佳实践,说明如何投入实用。虽然这不是初级教程,但是只要稍稍了解Javascript基本语法,就能看懂。...这样做除了保证模块独立性,还使得模块之间依赖关系变得明显。这方面更多讨论,参见Ben Cherry著名文章《JavaScript Module Pattern: In-Depth》。

948110

模块——举例

模块一个常用场景是把一常用方法包装起来,这样用起来时候就方便了。...前面使用Open 进行文件操作,使用起来不是很方便,但是FileSystemObject里TextStream使用起来就比较方便了,知道了之后,就可以使用对Open文件操作进行包装。...3步,但是,参数传递完全可以不那么复杂了: num_file这个参数,完全就可以包装到模块内部,外部使用不需要出现这个参数。...Close #num_file这个方法也可以直接放到模块内部,因为具有2个事件Class_Initialize和Class_Terminate,Class_Terminate在被销毁也就是Set...插入一个模块,修改名称为CFile: Private lFileLen As Long Private num_file As Integer '读取len(b)个byte Function Read

50820

模块——接口

模块另外一种更为抽象用法是作为接口,Excel VBA中没有真正接口这种东西,接口也是使用来实现。...以前提到过,为了能够让代码复用,很重要一点就是要尽量将要实现方法抽象出来,尽量去满足多种情况,而接口也能理解为是一种抽象,接口抽象到只定义要实现方法和属性,只要实现了定义方法和属性,就表示他们是同一种对象...1、定义接口: 和创建方法一样,插入模块,命名为Tester,创建属性、方法等: Property Let TestValue(Value As Long) End Property Sub...2、实现接口: 另外创建一个,命名为CTest,输入语句: Implements Tester 这个是必须,说明CTest要去实现Tester方法、属性。...然后排序函数传入参数修改为这个接口,再碰到新数据结构需要排序时候,只需要创建1个,去实现那3个接口就可以了,能够极大简化编码过程。

40930

聊聊 JavaScript 几种模块系统

大家好,我是前端西瓜哥,今天我们来聊聊 JavaScript 模块系统。 模块系统 模块系统是什么?...模块优点: 文件里声明变量会被隔离,不会暴露到全局,可以有效解决以往变量污染全局空间问题; 更容易看出代码之间依赖关系,看文件头导入代码就知道; 方便多人协作,各自开发自己模块,而不冲突...AMD,是 Asynchronous Module Definition 缩写。这是一种异步模块加载方案,是 ES Module 发布前一种浏览器模块化方案。...CommonJS 不适合浏览器端,因为它模块加载是同步,浏览器需要请求模块文件,是异步。 AMD 特点是 依赖前置,即所有的依赖模块要在开头指定好。...,然后第二个参数函数可以拿到这些模块导出内容,然后这个函数返回值就是当前文件导出内容。

40910

Yarn 管理 JavaScript 模块

Yarn 简介 Yarn 是 Facebook 开发一款新 JavaScript 包管理工具, 作为 NPM 替代产品,主要是为了解决下面两个问题: 安装时候无法保证速度/一致性 安全问题,因为...NPM 安装时允许运行代码 Yarn vs NPM 速度快 相比于 NPM,Yarn 速度更快,Yarn 会把使用过模块在本地缓存一份,如果下次还要用到相同版本模块,那么将会直接使用本地而不是访问网络重新获取一份...npm info xxx yarn info xxx 运行script npm run yarn run 测试 npm test yarn test yarn.lock 文件 在使用 NPM 管理 JavaScript...模块时候,可以用比较宽松方式定义某个模块版本信息,如 *: 任意版本 ~1.1.0: >=1.1.0 && < 1.2.0 ^1.1.0: >=1.1.0 && < 2.0.0 >= 1.0.0...NPM 这种策略可能导致两台拥有相同 package.json 文件电脑安装了不同版本包,这可能导致一些错误。很多模块安装错误和环境问题都是由于这个原因导致。

51220

JavaScript 模块

随着前端js代码复杂度提高,JavaScript模块化这个概念便被提出来,前端社区也不断地实现前端模块化,直到es6对其进行了规范,下面就介绍JavaScript模块化。...JavaScript模块化是如何一步一步地发展起来,并且也会主要对这些模块化方式做一个简单比较。...第一阶段:无模块JavaScript最初作用仅仅是验证表单,后来会添加一些动画,但是这些js代码很多在一个文件中就可以完成了,所以,我们只需要在html文件中添加一个script标签。...第二阶段: CommonJS规范 CommonJS就是一个JavaScript模块规范,该规范最初是用在服务器端node,前端webpack也是对CommonJS原生支持。...优点: CommonJS规范在服务器端率先完成了JavaScript模块化,解决了依赖、全局变量污染问题,这也是js运行在服务器端必要条件。

51950

JavaScript模块循环加载

本文介绍JavaScript语言如何处理”循环加载”。目前,最常见两种模块格式CommonJS和ES6,处理方法是不一样,返回结果也不一样。...一、CommonJS模块加载原理 介绍ES6如何处理”循环加载”之前,先介绍目前最流行CommonJS模块格式加载原理。 CommonJS一个模块,就是一个脚本文件。...二、CommonJS模块循环加载 CommonJS模块重要特性是加载时执行,即脚本代码在require时候,就会全部执行。...exports.done = true; 三、ES6模块循环加载 ES6模块运行机制与CommonJS不一样,它遇到模块加载命令import时,不会去执行模块,而是只生成一个引用。...等到真的需要用到时,再到模块里面去取值。 因此,ES6模块是动态引用,不存在缓存值问题,而且模块里面的变量,绑定其所在模块。请看下面的例子。

1K40

Python模块、包区别

概念在许多语言中出现,很容易理解。它将数据和操作进行封装,以便将来复用。 模块 模块,在Python可理解为对应于一个文件。在创建了一个脚本文件后,定义了某些函数和变量。...这样语义用法使模块看起来很像或者名字空间,可将module_name 理解为名字限定符。模块名就是文件名去掉.py后缀。...每个模块都有自己私有符号表,所有定义在模块里面的函数把它当做全局符号表使用。 模块可以导入其他模块。通常将import语句放在模块开头,被导入模块名字放在导入它模块符号表中。...item时,item可以是package模块或子包,或是其他定义在包中名字(比如一个函数、或变量) 首先检查item是否定义在包中,不过没找到,就认为item是一个模块并尝试加载它,失败时会抛出一个...当使用import item.subitem.subsubitem语法时,最后一个item之前item必须是包,最后一个item可以是一个模块或包,但不能是、函数和变量 from pacakge import

1.1K20

Python 导入模块

参考链接: 用Python导入模块 介绍  在看代码时发现Python导入也可以用“.”方式,很是惊奇,记录下来: 如以下代码:其所在文件(模块)为test.py  class Dog():    ...def __init__(self,name1):   #这里想说一点,Python class中__init__就相当于Java中构造函数一样,形参在这定义。        ...if __name__ == '__main__':     dog1 = Dog("ha").bark() 单独运行时结果如下:  在新.py文件里想要导入这个模块Dog,有两种方式: 第一种为...:  from test import Dog   #使用from  “模块名”import  “名”方式 dog2 = Dog("jinmao") dog2.bark() 结果为:   第二种为:...  import test  #import  "模块名" dog2 = test.Dog("jinmao")  #使用   模块名.名   方式使用此类 dog2.bark() 结果和第一种一样。

2.2K20

模块——接口排序

能用好与接口的话,代码复用率会非常高,是个值得好好学习东西。...但是,如果需要排序是个二维数组的话,就不得不把排序函数重新写过一次,如果是结构体,又得重新写过…… 接口使用,就可以最小化来修改这些东西。...对于这个排序函数,不管传入是什么数据,排序算法是固定,不同地方是: 2个数据比较 (If l(i) > l(j) Then) 2个数据交换 ( Swap) 排序算法是固定,要修改是这2个功能...,只要传入东西里面具有这2个功能就可以了,具有功能东西,也就是能有自己方法。...但是又不能传入某种具体,因为数据不同,这2个方法也是不相同,这就需要接口了。

29010

常见JavaScript 模块化规范

一、 常见JavaScript 模块化规范有3种,CommonJS、AMD(异步模块定义)、CMD(公共模块定义) 服务端 :NodeJS 服务:CommonJS规范,新版本Node也可以启用ES6...CommonJS规范 (1) 每一个文件都是一个模块,每一个模块都有一个独立作用域,文件内变量,函数都是私有的,其他文件不可使用(除非赋值到 global上) (2)每个模块内部,module变量代表当前模块...(3)每个文件对外接口是 module.exports 属性 (4) require用于引用其他模块,实际获得是其他模块module.exports这个属性 2....CMD(Common Module Definition - 公共模块定义) CMD 是 SeaJS 在推广过程中对模块定义规范化产出 使用 定义模块 define(factory) 加载模块 require...UMD(AMD和CommonJS糅合) UMD先判断是否支持Node.js模块(exports)是否存在,存在则使用Node.js模块模式。

56520
领券