Хорошо, поэтому я работаю над проектом в 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
и конкатенация, не будут доступны:(: (
Какой лучший способ преодолеть такое препятствие, не переписывая большие куски кода.