Игра на «Морской Бой» на JavaScript: «Простая Игра» и «Игра для Двоих»
Yutex - Платный хостинг PHP.
Advego.ru - система покупки и продажи контента для сайтов, форумов и блогов

Технические фишки инфобизнеса 2014

Статьи для сайтов!!!
Дизайн сайтов
Работа с объектами в javascript Передача объекта в функцию Методы объекта - Ключевое слово this

Передача объекта и переменной в функцию в Javascript

Количество просмотров: 842

Продолжим практическое освоение javascript. Поговорим о передаче объектов в функции.

Если Вы не еще работали с объектами, то смотрите предыдущую практическую задачу, где также есть ссылки на теорию.

Что нужно знать...

1. Читайте теорию об Объектах
(см. меню справа - Основной курс по Javascript).

2. Полезно будет разобраться с материалом о передаче переменных в функцию.

Передача объектов в функцию - Немного теории

Для начала напомним о том, что при передаче переменной в функцию, в параметр функции копируется значение переменной, но не сама переменная (она не меняет своего исходного значения, и функция работает с копией).

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

Следовательно, если передать объект функции, то ей передается не сам объект, а ссылка на него.

Если обратиться к материалу о передаче переменных в функцию, согласно которому в функцию передается копия значения переменной.

То выходит, что при передаче объекта функции - в ее параметр передается не ссылка на объект, а копия ссылки на объект.

- переменная - это ссылка на объект, она на него указывает;

- в функцию передается копия ссылки на объект.

Для тех, кто запутался - это нужно прочесть и прокрутить в голове несколько раз.

Пример передачи объекта в функцию

1. В качестве примера рассмотрим объект, который содержит свойства, отражающие какие-либо качества и параметры собаки.

/* Объект «Собака» */
var
juicy = {
name: "Джуси",
/* имя собаки */
weight: 15, /* её вес в кг. */
breed: "Смесь", /* порода */
loves: "Прогулка" /* любит гулять */
}

- переменная juicy является ссылкой на объект, описывающий характеристики собаки;

2. Напишем функцию для снижения веса собаки.

function lose_Weight(dog,value)
{
dog.weight = dog.weight - value;
}

Функция lose_Weight работает со свойством weight (вес) объекта «Собака» и содержит два параметра dog и value:

- в параметр dog следует передать переменную juicy (см. выше), как ссылку на объект;

- в параметр value заносится произвольное число.

Итак, если в параметр dog функции lose_Weight передать переменную juicy, которая ссылается на объект «Собака», то функция снизит вес собаки на указанное во втором параметре число.

<script type="text/javascript">

/* Объект «Собака» */
var
juicy = {
name: "Джуси",

weight: 15,
breed: "Смесь",
loves: "Прогулка"
}

/* Функция снижения веса */
function lose_Weight(dog,value)
{
dog.weight = dog.weight - value;
}

/* Вызываем функцию */
lose_Weight(juicy,3);

document.write("Собака " + juicy.name + " сейчас весит " + juicy.weight + " килограмм");

</script>

Результат - Передача объекта в Функцию

Собака Джуси сейчас весит 12 килограмм

Для тех, кто вник в суть передачи переменных в функцию, решение этой задачи может показаться неожиданным, ведь, напомним, что при работе с переменными в функцию передается копия значения переменной; исходное значение переменной остается прежним.

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

  • Мы вызвали функцию lose_Weight с параметрами juicy и 3.

    - juicy - это переменная, которая ссылается на объект «Собака»;

  • Внутри функции происходит обращение к свойству объекта weight - это вес собаки, из значения которого (то есть из 15) вычитается число 3.
    dog.weight = dog.weight - value
  • В результате изменения, которые были сделаны внутри функции, отразились на исходном объекте.
  • Ведь далее, при выводе на экран свойства weight объекта, мы видим, что собака стала весить 12 кг.

Итак, процедура передачи в функцию переменной, ссылающейся на объект, позволяет внутри функции менять свойства этого объекта.

Частота просмотра уроков
JavaScript
Работа с объектами в javascript Передача объекта в функцию Методы объекта - Ключевое слово this

Ваши комментарии:

Комментариев нет...

Добавить комментарий:

Ваше Имя:*
Комментарий:*
Ответьте на вопрос: *
Сколько дней в Високосном году?
* - поля обязательные для заполнения.
ПОИСК ПО САЙТУ:

Моё имя Антон. Связаться со мною Вы можете по e-mail: averagev@mail.ru