我目前正在使用NodeJS作为项目的服务器端,并为我的内部帮助函数创建了一个“模块”。
以下是我目前如何设置“帮助”文件的示例。
# Structure 1
var express = require('express');
var helpers = {
isNullOrEmpty: function(s)
{
return s == "" || s == null || s.length == 0;
},
formatDate: function(s)
{
var dateArr = s.split('/');
if (dateArr.length == 3)
{
return dateArr[1] + '-' + dateArr[0] + '-' + dateArr[2];
}
else
{
return null;
}
}
}
module.exports = helpers;
正如你在上面看到的那样,它的设置'对象'就像,并且在项目中一切正常并且没有问题,但是当我看到人们创建自己的模块的例子时,他们使用如下的结构。
# Structure 2
var express = require('express');
function helpers(){};
helpers.protoype.isNullOrEmpty = function(s){
return s == "" || s == null || s.length == 0;
}
helpers.prototype.formatDate = function(s){
var dateArr = s.split('/');
if (dateArr.length == 3){
return dateArr[1] + '-' + dateArr[0] + '-' + dateArr[2];
}
else {
return null;
}
}
}
module.exports = helpers;
是否有正确或错误的方法来设置这些文件的结构?格式化这些模块有什么优点/缺点吗?
任何信息,“最佳实践”或反馈都将非常受欢迎!
答案 0 :(得分:0)
它来自javascript的oop的基本含义,在这种情况下它是因为它 当你使用object.prototype然后你可以定义从父对象继承的其他对象,并且所有函数都可以在子对象中用于js中的继承,你可以像这样使用:
function helpers(){};
helpers.protoype.isNullOrEmpty = function(s){
return s == "" || s == null || s.length == 0;
}
helpers.prototype.formatDate = function(s){
var dateArr = s.split('/');
if (dateArr.length == 3){
return dateArr[1] + '-' + dateArr[0] + '-' + dateArr[2];
}
else {
return null;
}
}
}
var secondObject=new Object()
secondObject.prototype=Object.create(helpers.prototype)