Лучший способ программирования: Switch или Object Orientation?

0

В настоящее время я пытаюсь написать программу с динамическим div для каждого li, на который я нажимаю. Вот сценарий для справки: http://jsfiddle.net/aaronyolungz/P8x3z/7/

Каждый div будет иметь 4 параметра, которые я хочу вызвать самостоятельно: имя, родной город, майор, опыт (все строки)

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

UserStatement(user).User.name?

Или я должен пойти на что-то вроде этого:

function user_name(user){return name;}
function user_major(user){return major;}

EDIT: Исправлена ссылка на скрипку

  • 1
    Почему бы просто не использовать массив, например так: jsfiddle.net/rooseve/P8x3z/8
  • 0
    JavaScript - очень гибкий язык, который отличается от других языков, таких как Java.
Показать ещё 1 комментарий
Теги:

2 ответа

1

Я думаю, вы должны указать name, major, hometown как значение атрибута внутри li, например

<li data-name="1" data-major="xx" data-hometown="" ></li>

Таким образом, вы можете получить эти значения через $.data, а не помещать данные в javascript.

ссылка на данные jQuery api doc

UserStatement(userName).name хорошо

  • 0
    Если бы я реализовал это, использовал бы я $ .data-hometown при поиске родного города?
  • 0
    Я считаю, что это должен быть $ (element) .data ('родной город'). проверьте API-документ, который я только что добавил в ответ
1

У вас есть функция, которая извлекает модель (UserStatement(userNumber)), и я не вижу проблемы, когда вызывающие пользователи используют что-то вроде UserStatement(userNumber).name.

Что касается оператора switch, его можно заменить поиском в массиве или объекте.

И поскольку доступ к модели должен быть динамическим, вы можете использовать атрибут в элементах, чтобы сообщить вам, какое свойство необходимо получить:

<ul id="testimonials" data-property='name'>
  ...

И доступ к нему вот так:

var userNumber = $(this).attr('id');
var property = $(this).parent().data('property');
added_div = '<div class="testimonial_expanded">' +
  UserStatement(userNumber)[property] + '</div>';

Заклинай здесь.

  • 0
    Так что я могу получить локальные переменные, вызвав function.localVar ? Извините, если это очевидно и повторяется, я просто хочу перепроверить и убедиться, что знаю, как это работает.
  • 0
    Нет, вы получите доступ к объекту, который вы возвращаете из функции. Это не локальная переменная, а возвращаемое значение.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню