节点模块作为getters和setters提供
Node module provide as getters & setters
我有以下代码工作正常。现在我需要添加其他属性和函数并导出它们,建议如何做?假设我有两个函数和两个需要导出的附加属性。
属性类似是有效的道具1
var internal = require("../plu/internal");
module.exports = {isAvailable: false};
internal.eventEmitter.on('AppA', function () {
module.exports.isAvailable = true;
});
在对象上定义 setter 和 getter 方法的标准方法是在 internal
模块中使用 Object.defineProperty
方法。通过导出internal
模块,您还将导出setter
和getter
方法。
Object.defineProperty(Internal.prototype, "isAvailable", {
get : function(){
return this.available;
},
set : function(value){
this.available = value;
}
});
或者在 ES6 中,您可以编写与以下内容相同的内容:
get isAvailable() {
return this.available;
}
set isAvailable(value) {
this.available = value;
}
使用 Internal.prototype
您可以使用 setter 和 getter 方法扩展基本对象原型。
这是一种简单直接的方法。如果我误解了,请纠正我。这将为需要此文件的每个人公开 getter 和 setter。除非您想在更改发生时发出更改,否则这可能不是答案。
var available = false;
module.exports = {
getAvailable: getAvailable,
setAvailable: setAvailable
}
function getAvailable() { return available;}
function setAvailable(avail) { available = avail;}
使用以下代码,如果它可以解决您的问题?
var exports = module.exports = {};
var internal = require("../plu/internal");
exports.isAvailable = false;
internal.eventEmitter.on('AppA', function () {
exports.isAvailable = true;
});
exports.myTestFunc = function () {
return "Hello Test";
}
exports.testProperty = true;
相关文章:
- 我需要为我的朋友在这个项目上提供帮助
- Grunt-connect在根目录之外提供静态文件
- 如何提供在javascript中编写对对象的重复访问以设置元素样式的简写
- AngularJS错误:提供程序必须从$get工厂方法返回值
- 文档就绪提供了错误的选择器高度
- 为图像提供灯箱效果
- 如果在代码末尾进行求值,jQuery-console.log将提供空数组
- 提供“;onClick"适用于iPad(触摸屏)和桌面用户的默认功能
- 函数jquery.html()不提供数据属性集值
- 有人能提供一张ember数据与broswer's的持久层
- 提供tar.gz文件并在nodejs上下载
- 如何在不在本地下载的情况下将url中提供的文件(pdf/doc)转换为json/string/base64格式
- CORS:访问控制允许原点不等于提供的原点
- SqlStorage Ionic 2作为服务/提供程序
- 如何通过资产管道提供Javascript中子文件夹中的图像
- 使用AssetPipeline如何在Javascript中提供图像
- 使用connect vhost为多个express.js应用程序提供服务
- 在Hapi.js中提供静态JavaScript文件不起作用
- 鉴于 for..在构造中,库提供的函数(如 jQuery.map() 或 _.each())有什么用
- 节点模块作为getters和setters提供