Jump to content
  • 0

this


rediskavet
 Share

Question

Как в функцию передать элемент который ее(эту функцию вызвал), я понимаю что при помощи this, но как это правильно оформить я не знаю.

допустим есть:

<li onclick="f(this)" style="color:red;">фильмы</li>
<li onclick="f(this)" style="color:red;">музыка</li>
<li onclick="f(this)" style="color:red;">книги</li>
function f(){
var a= ???;
}

Как элемент вызвал функцию привязать к переменной а?

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0
Только переменной это все присваивать не обязательно, так и работайте с obj, зачем еще и a создавать?

Иногда это имеет свой смысл.

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

Ну и с точки зрения модификации кода, это может пригодиться.

Например, изначально вы передавали объект с определенной структурой, например obj = { a: 1, b: 2 }. Код функции работает только с полем "a". Но понадобилось усложнить структуру передаваемых данных, теперь obj выглядит вот так { prefs: { a: 1, b: 2}, other: [1,2,3] }

Получается, что если в коде использовать только прямую ссылку на obj, то придется во всех местах править. А в случае локальной переменной всего лишь var a = obj.prefs

Где меньше шанс допустить ошибку? Где код проще модифицируется?

Link to comment
Share on other sites

  • 0
спасибо разобрался, "а" все-же короче писать чем "obj".

Одна буква не отражает сути переменной.

Меньше писать прямо пропорционально дольше разбираться, что же это такое, что прямо пропорционально затраченному времени на изменение, что обратно пропорционально доходу.

Link to comment
Share on other sites

  • 0
Одна буква не отражает сути переменной.

если в скрипте две переменных как у меня на данном моменте, то не стоит труда разобраться кто-есть-кто. Но на будущее совет пригодиться, спасибо.

Link to comment
Share on other sites

  • 0
если в скрипте две переменных как у меня на данном моменте, то не стоит труда разобраться кто-есть-кто. Но на будущее совет пригодиться, спасибо.

Привычки имеют свойство въедаться надолго. И избавляться от них будет серьезной проблемой.

Link to comment
Share on other sites

  • 0

да понял, буду исправляться. Я просто(после прочтения страниц двухсот учебника по пхп) понял что теория как то на откладывается у меня в голове, решил зайти с другого конца. Просто сделать сайт, для личных нужд, но с богатым функционалом, при этом про JS знал только то что он выполняется в браузере. Поэтому у меня сейчас и вопросы "нуб"-овские(которых будет много), и недочеты такие.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy