Что такое внутренняя логика кода для методов Push и Pop в javascript .. ?? Как метод Push сохраняет значения в массиве.Как работает код Javascript Array Push внутри?
ответ
Методыи pop
намеренно являются общими, они полагаются только на существование свойства length
и могут добавлять и удалять свойства.
Метод push
будет читать свойство length
, добавить свойство с этим именем и увеличить длину. В основном:
function push(value) {
var len = this.length;
this[len] = value;
len++;
this.length = len;
return len;
}
Метод pop
прочтет length
свойства, уменьшить его, получить свойство с таким именем и удалить свойство. В основном:
function pop() {
var len = this.length - 1;
var value = this[len];
this.length = len;
delete this[len];
return value;
}
Фактическая реализация немного более сложным, так как они поддерживают, например, несколько параметров для push
метода, и еще некоторые проверки ошибок. Там может также реализоваться специальный оптимизированный код, когда объект фактически является массивом, но тогда общий код все еще существует для других объектов.
Методы преднамеренно универсальны, поэтому их можно использовать для объектов, которые на самом деле не являются массивами. Вы можете сделать свой собственный объект, который поддерживает их, только имея length
свойства:
var o = {
length: 0,
push: Array.prototype.push,
pop: Array.prototype.pop
};
o.push(1);
var one = o.pop();
Спасибо за подробный ответ. Цените это. !! Моя цель состояла в том, чтобы создать объект customArray(), например clone of Array(). Теперь после нажатия всех моих элементов, как происходит связывание между каждым объектом, который я ввел в myCustomArray(). "var values = new CustomArray ('xyz', 'xxx', 'yzx');" как значения хранятся внутри. – dcheepurapalli
@dcheepurapalli: Элементы в массиве сохраняются как свойства объекта. Первый элемент - это просто свойство с именем «0», второй - просто свойство с именем «1» и т. Д. Вот почему методы 'push' и' pop' будут с удовольствием использовать объект вместо массива, если он имеет свойство 'length'. – Guffa
Awesome .. !! Большое спасибо @ Guffa – dcheepurapalli
- 1. php array внутри массива javascript .push
- 2. Array Push не работает внутри Угловой контроллер
- 3. Javascript String Array: метод Push не работает
- 4. Javascript: push in array
- 5. Push Array внутри массива PHP
- 6. Javascript array push function
- 7. javascript multi array push
- 8. Push несколько json array - javascript
- 9. push to array внутри функции
- 10. Javascript Array Push breaks loop?
- 11. Push Array in Array
- 12. Javascript - Array push for AutoComplete
- 13. push 3d array jquery javascript
- 14. JavaScript push Array в массив
- 15. javascript array push value объекта
- 16. Javascript: Array внутри объекта
- 17. Как работает Array (Javascript)?
- 18. Javascript Array внутри массива не работает
- 19. Mongo push to array внутри массива
- 20. JavaScript loop push to new array
- 21. Array push не работает в IE5 с помощью javascript?
- 22. Синтаксис Javascript: var array = [] .push (foo);
- 23. javascript array push пустые ключи и значения
- 24. javascript array empty using .push .text
- 25. Push Unique Objects to JavaScript Array
- 26. Push to array с индексным методом (JavaScript)
- 27. Код JavaScript внутри UpdatePanel
- 28. Метод Javascript push не работает
- 29. Push объектов в Filtered JavaScript Array
- 30. Javascript array push in for loop
Есть так много ответов как есть JavaScript времени автономной работы. – meagar
Он будет отличаться для каждого механизма JavaScript. Вам нужно будет посмотреть исходный код каждого (не всегда доступный), чтобы увидеть, как он работает. Например, [вот последняя версия внутреннего метода Google V8 'ArrayPush()') (https://code.google.com/p/v8/source/browse/branches/3.7/src/array.js#452) , –