2014-09-04 153 views

回答

1

這是不可能來指代對象從符號本身通過對象的文字符號被創建。此刻,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'; 
}; 
+0

謝謝..它工作完美..我很好奇,但表現..哪一種更有效?這個答案或下面的答案@pomeh ...只是想知道.. – Melvin 2014-09-04 09:44:52

1

當你運行該代碼this.theme + 'layout'this並不指的是你views對象,但它指的是全局對象,它因爲沒有theme財產。

這應該工作:

var view = {}; 
view.theme = 'themes/theme1/'; 
view.layout = view.theme + 'layout'; 

module.exports.views = view;