节点模块提供 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;
});
这是一种简单直接的方法。如果我误解了,请纠正我。
这将为需要此文件的每个人公开 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;
在对象上定义 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 方法扩展基础对象原型。
我有以下代码可以正常工作。 现在我需要添加额外的属性和函数并将它们导出, 建议怎么做? 假设我有两个函数和两个附加属性需要导出。
像这样的属性 已验证 道具 1
var internal = require("../plu/internal");
module.exports = {isAvailable: false};
internal.eventEmitter.on('AppA', function () {
module.exports.isAvailable = true;
});
这是一种简单直接的方法。如果我误解了,请纠正我。 这将为需要此文件的每个人公开 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;
在对象上定义 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 方法扩展基础对象原型。