两种exports方式的区别
发布日期:2021-11-30 16:11:42
浏览次数:13
分类:技术文章
本文共 1259 字,大约阅读时间需要 4 分钟。
要在node中导出一个模块,在一种是直接导出一个object,function作为exports的属性;第二种方式是导出一个function,真正想导出的function写在prototype上:
exports.sayHello = sayHello;function sayHello(){ console.log("hello world");}
var obj = require("./method1");obj.sayHello();另一种方式:
exports = module.exports = Person;function Person(){}Person.prototype.sayHello = function(){ console.log("hello world");}
var Person = require("./method2");var someone = new Person();someone.sayHello();两种方式都可以,第一种更常见一点,不过也有很多开源框架用的是第二种方式(比如express)。如果用第二种方式,外部可以拿到导出的构造函数,有机会给它增加一些公共的方法:
var Person = require("./method2");Person.prototype.sayAge = function(){ console.log(100);}另外一个好处,就是用第二种方法导出,在WebStrom里可以直接链接到prototype上的function定义,读代码比较容易点
还见过一种写法,是混合使用2种方式:
exports = module.exports = Person;function Person(){}Person.prototype.sayHello = function(){ console.log("hello world");}Person.sayName = function(){ console.log("my name is kyfxbl");}
var Person = require("./method2");Person.sayName();var someone = new Person();someone.sayHello();因为在javascript里,function也是object,也可以有自己的属性,所以可以把别的function挂在这个构造函数上面
其实还有一个更简单的办法,在默认情况下,this,exports,module.exports指向同一个object,所以直接用
this.sayHello = sayHello;function sayHello(){ console.log("hello world");}也可以导出sayHello函数,但是这样一来不直观,而且IDE也识别不了sayHello方法,所以不推荐使用
转载地址:https://kyfxbl.blog.csdn.net/article/details/19410151 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月02日 22时37分28秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
木兰编程语言入门教程之二——控制走向
2019-04-26
基于「木兰」编译器,加十行代码实现 ∈ (属于集合)语法
2019-04-26
创建安卓键盘演示——“好不”
2019-04-26
木兰编程语言入门教程之三——函数和类型
2019-04-26
基于「木兰」逆向工程用 pyinstaller 生成可执行文件
2019-04-26
从微盟事件看商业数据公开化的必然趋势
2019-04-26
为新语言编写Visual Studio Code语法高亮插件
2019-04-26
手机编程环境初尝试-用AIDE开发Android应用
2019-04-26
Java关键字的汉化用词探讨
2019-04-26
程序员面试时用中文命名写白板代码的好处
2019-04-26
1992年日本对母语编程的可读性比较实验
2019-04-26
[转] 用python编写控制网络设备的自动化脚本3:启动
2019-04-26
扩展Python控制台实现中文反馈信息
2019-04-26
扩展Python控制台实现中文反馈信息之二-正则替换
2019-04-26
在PyPI测试平台发布Python包
2019-04-26
中文代码示例之Electron桌面应用开发初体验
2019-04-26
中文代码示例之NW.js桌面应用开发初体验
2019-04-26
为《 两周自制脚本语言 》添加中文测试代码
2019-04-26
将《 两周自制脚本语言 》测试中使用的接口中文化
2019-04-26