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

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

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

Работа с объектами в javascript - Используем функции - Теория и практика

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

Здесь мы решим практическую задачу по работе с объектами в Javascript. Будут задействованы функции и условия if else.

Нужно будет написать функцию для проверки автомобилей.

Что нужно знать из теории для работы с объектами?

1. Полезно будет ознакомиться с темой: Создание объекта.

2. Дополнительно можно ознакомиться с темами: Объект String, Объект Number и Объект Date.

Условие задачи:

1. Есть три объекта (три автомобиля): first_Car, second_Car и third_Car.

2. Каждый из объектов (автомобилей) имеет набор свойств и соответствующих им значений (характеристики автомобиля).

3. Рассмотрим один из объектов:

var first_Car = {
make: "VAZ",
/* производитель */
model: 2106,
/* модель */
year: 1980,
/* год выпуска */
color: "beige",
/* цвет */
passengers: 5,
/* число пассажиров */
convertible: false,
/* откидной верх */
mileage: 80000
/* пробег */
}

- свойства make и color имеют строковые значения;

- свойства model, year, passengers и mileage - числовые значения;

- свойство convertible принимает булево значение.

Нужно сделать следующее:

Написать функцию, которая проверяет автомобиль по двум параметрам (год выпуска и пробег) и возвращает булево значение true или false.

Подробности:

1. Функция имеет один параметр car, в качестве которого получает один из 3-х объектов. Например, выше рассмотренный автомобиль first_Car.

2. Функция должна работать с любым подобным объектом.

Функция для проверки объекта - true или false

<script type="text/javascript">

/* 1-ый объект */
var first_Car = {
make: "VAZ",
model: 2106,
year: 1980,
color: "beige",
passengers: 5,
convertible: false,
mileage: 80000
}

/* 2-ой объект */
var second_Car = {
make: "VW",
model: "Passat b3",
year: 1990,
color: "neptune",
passengers: 5,
convertible: false,
mileage: 160000
}

/* 3-ий объект */
var third_Car = {
make: "Hyundai",
model: "Solaris",
year: 2012,
color: "wet asphalt",
passengers: 5,
convertible: false,
mileage: 15000
}

/* Функция для проверки объекта */
function good_Car(car) {
if (
car.year < 2000){
return false;
}
else if (
car.mileage > 50000){
return false;
}
else{
return true;
}
}

/* Вызов функции и Вывод результата */
var result = good_Car(third_Car);

document.write(result);

</script>

Решение - Результат...

true

Комментарии к решению:

  • Итак, мы имеем три объекта (три автомобиля), каждый из которых можно проанализировать при помощи функции good_Car.
  • Функция good_Car имеет один параметр car, в качестве которого может выступать любой из объектов (автомобилей): first_Car, second_Car или third_Car: function good_Car(car).
  • В теле Функции good_Car составлено условие, согласно которому:

    - если значение свойства year объекта car меньше 2000 (другими словами: если год выпуска автомобиля меньше 2 000), то функция возвращает false;

    - иначе, если значение свойства mileage объекта car больше 50000 (если пробег автомобиля больше 50 000), то функция возвращает false;

    - иначе функция возвращает true.

  • Далее мы вызываем функцию и в качестве параметра указываем объект third_Car (третий автомобиль), который успешно проходит проверку. Результат работы функции заносится в переменную result:
    var result = good_Car(third_Car);.
  • Переменная result выводится на экран;
  • Два других объекта (автомобиля) не будут соответствовать требованиям условия.

Оптимизация кода

Продолжим работать с объектами в javascript.

Итак, рассмотренная выше функция при проверке объектов (автомобилей) выдает в результате true или false (истину или ложь).

Можно немного улучшить качество восприятия решения рассмотренной задачи, то есть вместо true или false выводить какой-либо текст. Для этого составим условие для анализа результата.

<script type="text/javascript">

/* 1-ый объект */
var first_Car = {
make: "VAZ",
model: 2106,
year: 1980,
color: "beige",
passengers: 5,
convertible: false,
mileage: 80000
}

/* 2-ой объект */
var second_Car = {
make: "VW",
model: "Passat b3",
year: 1990,
color: "neptune",
passengers: 5,
convertible: false,
mileage: 160000
}

/* 3-ий объект */
var third_Car = {
make: "Hyundai",
model: "Solaris",
year: 2012,
color: "wet asphalt",
passengers: 5,
convertible: false,
mileage: 15000
}

/* Функция для проверки объекта */
function good_Car(car) {
if (
car.year < 2000){
return false;
}
else if (
car.mileage > 50000){
return false;
}
else{
return true;
}
}

/* Вызов функции и Анализ результата */
var result = good_Car(third_Car);

if(result) {
document.write("У Вас неплохой автомобиль: " +
third_Car.year + " год выпуска, с пробегом " + third_Car.mileage + " км.");
}
else{
document.write("Не будем говорить о Вашем автомобиле....");
}

</script>

Решение с условием для результата - Результат...

У Вас неплохой автомобиль: 2012 год выпуска, с пробегом 15000 км.

Условие для анализа результата составлено следующим образом.

  • Выражение if(result) является сокращенной формой записи выражения
    if(result == true).
  • Если результат работы функции good_Car является истинным true, то мы выводим на экран фразу: «У Вас неплохой автомобиль: 2012 год выпуска, с пробегом 15000 км.», где

    - 2012 и 15000 - это значения свойств year и mileage объекта third_Car.

  • Если же условие для проверки результата выдаст ложное значение false, то мы увидим: «Не будем говорить о Вашем автомобиле....». То есть рассматриваемый объект (автомобиль) не прошел проверку.

Оптимизация кода - Идем дальше - Добавляем функцию

Но и это еще не все. Посмотрите внимательно на фрагмент кода для вызова функции и анализа результата:

/* Вызов функции и Анализ результата */
var result = good_Car(third_Car);

if(result) {
document.write("У Вас неплохой автомобиль: " + third_Car.year + " год выпуска, с пробегом " + third_Car.mileage + " км.");
}
else{
document.write("Не будем говорить о Вашем автомобиле....");
}

Здесь объект third_Car (третий автомобиль) указывается трижды:

  • Первый раз при вызове функции good_Car он указан в качестве ее параметра: good_Car(third_Car).
  • И далее он фигурирует еще дважды, когда мы к нему обращаемся для указания его свойств: third_Car.year и third_Car.mileage.

Мне это не понравилось, так как при анализе другого объекта (автомобиля) нам придется его имя также указывать трижды!!!

Чтобы добиться одноразового указания анализируемого объекта, нужно и результат работы функции good_Car и анализ этого результата (то есть весь этот код) занести в еще одну функцию.

<script type="text/javascript">

/* 1-ый объект */
var first_Car = {
make: "VAZ",
model: 2106,
year: 1980,
color: "beige",
passengers: 5,
convertible: false,
mileage: 80000
}

/* 2-ой объект */
var second_Car = {
make: "VW",
model: "Passat b3",
year: 1990,
color: "neptune",
passengers: 5,
convertible: false,
mileage: 160000
}

/* 3-ий объект */
var third_Car = {
make: "Hyundai",
model: "Solaris",
year: 2012,
color: "wet asphalt",
passengers: 5,
convertible: false,
mileage: 15000
}

/* Функция для проверки объекта */
function good_Car(car) {
if (car.year < 2000){
return false;
}
else if (car.mileage > 50000){
return false;
}
else{
return true;
}
}

/* Заносим результат работы функции good_Car и Анализ результата в еще одну функцию */
function itog(car){
var result = good_Car(car);

if(result) {
document.write("У Вас неплохой автомобиль: " + car.year + " год выпуска, с пробегом " + car.mileage + " км.");
}
else{
document.write("Не будем говорить о Вашем автомобиле....");
}
}

itog(third_Car);

</script>

Решение с использованием еще одной функции - Результат...

У Вас неплохой автомобиль: 2012 год выпуска, с пробегом 15000 км.

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

  • Итак, здесь этот фрагмент кода, то есть результат работы функции good_Car и анализ этого результата, были занесены в еще одну функцию
    function itog(car) с параметром car.
  • Благодаря этому любой объект (автомобиль) может быть проанализирован. И при этом его имя будет указано лишь один раз: при вызове функции itog: itog(third_Car).

На этом мы закончим работу с этой практической задачей, которая познакомила нас с тем, как работать с объектами в javascript.

Частота просмотра уроков
JavaScript
Передача переменной в функцию Работа с объектами в javascript Передача объекта в функцию

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

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

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

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

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