a.js
// @global-constants
var App = {
constant: function() {
constant.prototype.CONST1 = 'abc';
}
};
module.exports = App;
无法使用b.js
说出App.constant.CONST1
,它说未定义为什么?
答案 0 :(得分:0)
您的代码存在两个问题:
1。)App.constant
将返回一个类(技术上是一个函数),但你想要的是它的对象,可以使用new
关键字创建,因此它变为,(new App.constant).CONST1
2。)constant.prototype.CONST1
不起作用,因为constant
不是您的匿名函数的名称,因此我给它命名为foo
,它变为foo.prototype.CONST1
。
修改后的代码:
var App = {
constant: function foo() {
foo.prototype.CONST1 = 'abc';
}
};
console.log((new App.constant).CONST1);
小提琴demo。
答案 1 :(得分:0)
如果您只想创建一组"常数",您只需要一个对象:
// @global-constants
var App = {
constant: {
CONST1: 'abc';
}
};
要了解有关原型如何工作的更多信息(以便您知道何时使用它们,何时不知道),我建议您阅读this article on MDN。