Не понимаю поведение метода concat в конструкторах на прототипе Array; это БАГ или что ( ?
пример:
/* 1.
создали конструктор на прототипе Array.
*/
var MyArray = function(){}
MyArray.prototype = new Array();
/* 2.
объявляю переменную "myarr" и присваиваю ей свойства конструктора "MyArray()" через оператор "new";
*/
var myarr = new MyArray();
/* 2.p.s.
т.к. конструктор MyArray() является наследником всех свойств конструктора Array() через свойство "prototype", ожидаю что унаследованы методы будут вести себя (правильно)
*/
/* 3.
используя метод "push" добавил пару значений
*/
myarr.push(2,3);
/* 4.
а вот метод concat ведёт себя не естественно
4.1
вместо того, чтобы создавать новый массив Array из заданных участков, он создает массив Array с ссылками на свойства переменой "myarr"
*/
var myarr_c = myarr.concat(myarr);
myarr.push("A");
console.log(myarr_c);
/* пример на простом Array */
//2.
var arr = [];
//3.
arr.push(0,1);
//4.
var arr_c = arr.concat(arr);
arr.push("A");
console.log(arr_c);
Как понимать такое поведении конструктора "MyArray" ?
Вот что происходит:
var o = { prop: "value" };
var push = [].push;
var concat = [].concat;
push.call(o, 123);
console.log(o);
console.log(concat.call(o, [1,2,3]));
myarr
получил методы массива, но массивом не является. Выведите typeof myarr
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Почему при клике на button, textContent у $alertApp появляется и тут же исчезает?
Ребята, я новичок и пытаюсь изучать cssСейчас изучаю селектор nth-child