module.exports.views = {
theme: 'themes/theme1/',
layout: this.theme + 'layout'
};
我想佈局屬性取決於主題屬性。但是,運行時,佈局屬性似乎是未定義的。我做錯了什麼?請幫助...NodeJS如何使用一個屬性來設置module.exports中的另一個屬性?
module.exports.views = {
theme: 'themes/theme1/',
layout: this.theme + 'layout'
};
我想佈局屬性取決於主題屬性。但是,運行時,佈局屬性似乎是未定義的。我做錯了什麼?請幫助...NodeJS如何使用一個屬性來設置module.exports中的另一個屬性?
這是不可能來指代對象從符號本身通過對象的文字符號被創建。此刻,this
指向window.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';
};
當你運行該代碼this.theme + 'layout'
,this
並不指的是你views
對象,但它指的是全局對象,它因爲沒有theme
財產。
這應該工作:
var view = {};
view.theme = 'themes/theme1/';
view.layout = view.theme + 'layout';
module.exports.views = view;
謝謝..它工作完美..我很好奇,但表現..哪一種更有效?這個答案或下面的答案@pomeh ...只是想知道.. – Melvin 2014-09-04 09:44:52