我的javascript项目中有两个文件:
app.js
hg manifest --all | findstr \.dll
notification.js
require('sugar')
var Notification = require('./notification');
let createdOn = 'now'
let notifyOn = 'in 2 days'
let someNotification = new Notification('go somewhere', Date.create(createdOn), Date.create(notifyOn))
someNotification.print()
在function Notification(content, createdOn, notifyOn) {
this.content = content
this.createdOn = createdOn
this.notifyOn = notifyOn
}
Notification.prototype.print = function() {
console.log('content', this.content)
console.log('createdOn', this.createdOn)
console.log('notifyOn', this.notifyOn)
}
module.exports = Notification
中我认为我已经编写了自己的模块" "导出构造函数"无论什么需要它。然后在notification.js
我"导入我的通知模块"与app.js
位于同一工作目录中。我还"导入Sugar包"所以我可以将自然语言转换为DateTime,详见Sugar.js。
接下来我" m"创建一个通知实例"并调用其中一个"实例方法"。
我想知道:上述所有内容的节点方式是什么,尤其是引号中的部分?具体而言,我对如何精确地谈论构造函数和原型函数以及这两行之间的区别感到困惑:
app.js
我正在寻找一个答案,使用节点习语向我解释我在项目中做了什么。
由于
答案 0 :(得分:2)
没有记录在案的标准节点习语。您的解释几乎就是您所做的事情,任何节点开发人员都会理解。这是我能想到的最短节点 - 措辞:
需要('糖&#39)
加载糖模块
var Notification = require(' ./ notification');
从当前模块的目录加载通知模块,并将导出分配给名为Notification
的变量
notification.js
导出用于创建Notification
个对象的构造函数的模块。
这两行之间的区别是什么:
require('sugar')
var Notification = require('./notification');
可以使用糖模块而不将其导出分配给任何变量,因为它的主要功能是将方法添加到现有的Date
和Number
原型(通常称为"扩展)一个现有的对象")并且您通过访问它添加的Date.create()
等方法来使用它的许多功能。
因此,它的功能被添加到已经存在的对象以及您如何使用其功能。这不是特别常见 - 我不知道以这种方式加载的模块的任何特定名称。
接下来我" m"创建一个通知实例"并呼唤其中一个 它的"实例方法"。
这已经是节点方式了。