На этот вопрос уже есть ответ здесь:
Хорошо, я работаю над проектом в Nodes, и у меня возникла небольшая проблема с ключами в объектных литералах у меня есть следующая настройка:
var required = {
directories : {
this.applicationPath : "Application " + this.application + " does not exists",
this.applicationPath + "/configs" : "Application config folder does not exists",
this.applicationPath + "/controllers" : "Application controllers folder does not exists",
this.applicationPath + "/public" : "Application public folder does not exists",
this.applicationPath + "/views" : "Application views folder does not exists"
},
files : {
this.applicationPath + "/init.js" : "Application init.js file does not exists",
this.applicationPath + "/controllers/index.js" : "Application index.js controller file does not exists",
this.applicationPath + "/configs/application.js": "Application configs/application.js file does not exists",
this.applicationPath + "/configs/server.js" : "Application configs/server.js file does not exists"
}
}
Хорошо, многие из вас посмотрят на это и подумают, что это нормально, но компилятор продолжает говорить мне, что мне не хватает :
(двоеточие ), а это не так, похоже на +
или .
оба влияют на компилятор.
Теперь я считаю (не уверен), что объектные литералы создаются во время компиляции, а не во время выполнения, что означает, что динамические переменные, такие как this.applicationPath
и конкатенация, являются не будет доступен :(: (
Как лучше всего преодолеть подобное препятствие без необходимости переписывать большие куски кода.