Дорогие программисты,есть маленький кусок кода,который я,к сожалению,не понял,а именно : почему на выходе получается function, в коде нет метода 2,почему работает?
var arr = ["a", "b"];
arr.push(function() {
alert( this );
})
arr[2](); // "a","b",function
Нумерация в массиве начинается с нуля, а квадратные скобки говорят о том, что мы обращаемся к элементу массива
const a = [1, "2", function foo() {}, {}];
a[0]; // number
a[1]; // string
a[2]; // function
a[3]; // object
В вашем случае элемент ( функция ) еще и сразу же вызывается
this внутри function - это ссылка на сам массив. В момент, когда ты вызываешь arr2 ты вызываешь функцию, помещенную внутрь массива на позицию с индексом 2. Она в свою очередь показывает тебе содержимое массива, буквы a,b и функцию на 3 позиции. Ты можешь поиграться с этим, поместив, например, внутри функции this в глобальную переменную. Например так
var a = 123
var arr = ["a", "b"];
arr.push(function() {
a = this;
alert( this );
})
arr[2]();
и посмотри, как меняется переменная a до вызова arr2 и после.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Сделал таблицу в html (Имя,код паспорта,номер телефона, сумма, "не погашено/погашено") Суть такова что надо чтоб при нажатие на имя вылезало окошко,...
Есть элемент label с классом radioContainer, при клике на него должен раскрываться список selectmenu с классом meal, дело в том, что при клике происходить двойное...
Есть стандартное генерируемое меню типа dropdown, допустим на 3 уровня