Вопрос по теории.
Почему происходит данная вещь:
var ar1 = ar2 = []; console.log(ar1); console.log(ar2); ar1.push(3); console.log(ar1); console.log(ar2); var ar1 = ar2 = 2; console.log(ar1); console.log(ar2); ar1 = 3; console.log(ar1); console.log(ar2); Результат: [] [] [3] [3] 2 2 3 2 Т.е. если мы создаем два массива, они создаются по ссылке. А переменные создаются по значению. |
А где вы создаёте два массива? Массив один, две переменные ссылаются на него.
|
По аналогии, можно сказать, что во втором случае две переменные ссылаются на одно число.
|
Массивы, функции, объекты типа Date и RegExp - это всё объекты, и они работают через ссылку
|
Цитата:
"Javascript - объектный язык. В нем все является объектами. Строки, числа, функции и массивы - все это объекты со своими методами и свойствами." Числа, строки, ...- они тоже объекты, но работают по значению? |
Цитата:
|
Цитата:
new String('This Object'); Любой тип данных может быть объектом. |
Цитата:
2. Сделайте мне из null'а объект. function isObject(el) { el.someTestingProperty = arguments; return el.someTestingProperty == arguments } alert([isObject(5), isObject({}), isObject(new Number(5))]) Цитата:
И вообще, я бы советовал понимать всё происходящее так: Нет никаких передач по ссылке. Есть только передача по значению. Но объектов как значений не существует, есть только ссылки на объекты. И вот именно они (ссылки, а не объекты) передаются по значению. |
Цитата:
Объект в ECMAScript — это неупорядоченное множество пар ключ-значение и определяются только типом Object Цитата:
|
Часовой пояс GMT +3, время: 09:03. |