obj.<name> ищет свойство с именем name. В вашем случае obj.key будет искать поле key.obj['hello' + 'world'].'hello' + 'world', вычисляется значение 'helloworld' и потом ищется поле helloworld.obj[key] происходят аналогичные вычисления. Смотрим, что находится внутри [] - там key, key - это переменная, берем её значение и ищем поле с таким названием.function scrollingText(str) {
const upper = str.toUpperCase();
const result = [upper];
let current = upper;
for (let i = 1; i < upper.length; i++) {
current = current.slice(1) + current[0];
result.push(current)
}
return result;
}
scrollingText('robot'); function Loader(){
// Описываем все нужные методы и свойства
this.queue=[]
this.clearqueue=function()[this.queue=[]}
this.loadScripts=function(array_of_scripts){ /* ... */ }
// и т.д.
}
//Создаём объект
var l=new Loader()
l.loadScripts(["/script_1.js","/script_2.js"])var test = function(foo){
/* тут действия */
var anythis=...; // формируем собственный this
// функция foo должна уметь работать с нашим новым this
foo.call(anythis); //Или apply, надо под ситуацию подстраиваться.
//Или так:
func=foo.bind(anythis);
func();
};
test(function(){
this.MyMethod();
});