module.exports.views = {
theme: 'themes/theme1/',
layout: this.theme + 'layout'
};
我希望layout属性依赖于theme属性。但是,运行时,布局属性似乎未定义。我做错了什么?请帮忙......
答案 0 :(得分:1)
当您运行代码this.theme + 'layout'
时,this
不会引用您的views
对象,但会引用全局对象,而不是theme
属性。
这应该有效:
var view = {};
view.theme = 'themes/theme1/';
view.layout = view.theme + 'layout';
module.exports.views = view;
答案 1 :(得分:1)
无法通过符号本身内的对象文字符号来引用正在创建的对象。目前,this
指的是窗口,或node.js的全局情况。
您需要使用getter函数返回值。
module.exports.views = {
theme: 'themes/theme1/',
layout: function() {
return this.theme + 'layout';
}
};
或者你可以把它变成一个构造函数。
module.exports.views = function() {
this.theme = 'themes/theme1/';
this.layout = this.theme + 'layout';
};