Введите ваш адрес почты


sdcvoy.ru
Понравился сайт? Поделись с друзьями!
Главная » Javascript » Obekty-perebor-svojstv-i-peredacha-po-ssylke

Объекты: перебор свойств и передача по ссылке

Перебор свойств в объекте осуществляется с помощью конструкции for..in . Эта конструкция отличается от цикла for. Давайте взглянем на пример, чтобы лучше разобраться как происходит сам перебор свойств:

var user = {
name: 'admin',
password: 'blacklord',
age: 100
};
for (var key in user){ // выведем все свойства со значениями объекта по порядку
alert (key + ": " + user[key])
};

Вместо переменной key может быть любое другое название, просто для удобства проще давать такое название для переменной при переборе. Можно узнать количество ключей (свойств) объекта с помощью этой же конструкции:

var user = {
login: 'nightgremlin',
name: 'admin',
password: 'blacklord',
age: 100
};
var character = 0;
for (var key in user){  
character++
};
alert ("Ключей в объекте: " + character )

С перебором вроде бы разобрались, осталось рассмотреть передачу по ссылке. Следует запомнить, что объект находится вне переменной. Сложно понять, но всё же:

var user = {
password: 'blacklord'
};
var superUser = user; // передали ссылку в другой объект
superUser['password']= 'Overlord'; // поменяли переменную в другом объекте
alert (user.password); // переменная поменялась и в первом объекте

Как видите переменную можно изменять и в другом объекте. Возможно вы хотите сделать независимую копию объекта, в котором можно будет менять свойства на своё усмотрение:

var user = {
password: 'blacklord'
};
var superUser = {};
for (var key in user){
superUser[key] = user[key]; // скопировали все ключи с одного объекта в другой
}
superUser['password']= 'Overlord'; // поменяли переменную в другом объекте
alert (superUser.password); // выведет Overlord
alert (user.password); // переменная не поменялась в первом объекте

Если что-то оказалось непонятным в данном уроке, прошу не стесняться, пишите свои комментарии.



наверх