理解Nodejs 的模块化思想 例子
2016-04-26 23:12
453 查看
在学习教程:nodejs教程 的时候, 遇到了怎么输出模块接口的问题,也就是怎么理解exports的用法.
hello.js文件里面的定义大家是一样的:
主程序我叫做sayName.js, 目的就是要让Hello的实例说出名字
主程序我叫做sayName-erro.js, 我们来试试错误的引用
运行结果:
可以看到提示错误这个类定义的代码是没有 setName()这个方法的, 类的定义当然有方法, 只是只有类的对象(或者实例)才能调用方法。
这里主要是要区别输出的是对象还是还是输出的是类,原教程的第一个例子输出的是对象,当然可以引用,但是描述上也让我懵B了一段时间:
在原链接地址中的第一个例子exports出来的是一个对象:
hello-object.js如下:
main-process.js如下:
这也就证明了,在hello.object.js 中的写法,实际上exports出来的是一个对象,而不是一个类。
hello.js文件里面的定义大家是一样的:
function Hello(){ var name; this.setName = function(thisName){ name = thisName; } this.sayName = function(){ console.log('hello\t'+name); } }; //定义了一个类 module.exports = Hello;//当我们使用require,来引入这个文件的时候得到的是这个类的定义
主程序我叫做sayName.js, 目的就是要让Hello的实例说出名字
var Hello = require ('./hello'); //module.exports = Hello, 而Hello是一个类,这里需要实例化 var hello= new Hello(); hello.setName('loudyten'); hello.sayName();运行结果:
主程序我叫做sayName-erro.js, 我们来试试错误的引用
var Hello = require ('./hello'); //module.exports = Hello, 而Hello是一个对象,这里需要实例化 console.log(Hello.toString()+'\n');//实际上就是把类的定义代码引用过来了 Hello.setName('fff');
运行结果:
可以看到提示错误这个类定义的代码是没有 setName()这个方法的, 类的定义当然有方法, 只是只有类的对象(或者实例)才能调用方法。
这里主要是要区别输出的是对象还是还是输出的是类,原教程的第一个例子输出的是对象,当然可以引用,但是描述上也让我懵B了一段时间:
在原链接地址中的第一个例子exports出来的是一个对象:
hello-object.js如下:
exports.world = function() { console.log('hello world'); };
main-process.js如下:
var hello = require('./hello-object'); console.log(hello.toString()); hello.world();运行结果:
这也就证明了,在hello.object.js 中的写法,实际上exports出来的是一个对象,而不是一个类。
相关文章推荐
- 使用ruby部署工具mina快速部署nodejs应用教程
- Lua编程示例(二):面向对象、metatable对表进行扩展
- C#中面向对象编程机制之多态学习笔记
- 浅谈Lua的面向对象特性
- Lua面向对象之类和继承浅析
- JavaScript面向对象的两种书写方法以及差别
- 浅谈c# 面向对象之类与对象
- C#面向对象特征的具体实现及作用详解
- C# 面向对象的基本原则
- 浅谈对c# 面向对象的理解
- Google官方支持的NodeJS访问API,提供后台登录授权
- 浅谈Nodejs观察者模式
- nodejs教程之环境安装及运行
- nodejs中的fiber(纤程)库详解
- 基于NodeJS的前后端分离的思考与实践(五)多终端适配
- 基于NodeJS的前后端分离的思考与实践(二)模版探索
- 实例详解Nodejs 保存 payload 发送过来的文件
- 我的NodeJs学习小结(一)
- Node.js 应用跑得更快 10 个技巧
- nodejs中实现sleep功能实例