Доступ к неглобальной переменной JS внутри области действия / функции динамически - PullRequest
0 голосов
/ 13 февраля 2020

Итак, я только начинаю с Babylon JS, и у меня есть переменная, которую я объявляю в функции createScene с именем scene. У меня есть эта функция, которая берет объекты из массива и конвертирует их, чтобы заполнить мой scene (цель) сетками:

let objectsFromArray = []

for(let i in sceneObjects){
    let currentObject = sceneObjects[i];
    let objectFunc = get(BABYLON, currentObject.path)

    objectsFromArray.push(
        objectFunc(...currentObject.params)
    )

    for(let action of Object.keys(currentObject.actions)){
        objectsFromArray[i][action] = objectsFromArray.actions[action]
    }
}

Массив вне функции createScene, который имеет все generi c объекты / сетки хранятся в нем следующим образом:

let sceneObjects = [
    {
        path: "MeshBuilder.CreateBox", 
        params: [
            "box", 
            {
                width: 30,
                height: 1
            }, 
            this["scene"] //<---- This is the issue
        ],
        actions: {
            position: new BABYLON.Vector3(0, -5, 3)
        }
    },

]

Обратите внимание на массив this["scene"] в конце массива params. Это здесь, потому что мне нужно динамически передать переменную scene, локально объявленную в моей функции createScene, в качестве цели для Вавилона JS, чтобы знать, где разместить me sh. Очевидно, this["scene"] нацеливается на неопределенную глобальную переменную вместо локальной. Как динамически нацелить переменную, которая была объявлена ​​локально / в области действия?

PS Извините за неправильное использование терминологии / глупости, в основном программируя как хобби

...