Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Так удивлён $(id)[data]() (https://javascript.ru/forum/misc/7192-tak-udivljon-%24-id-%5Bdata%5D.html)

mycoding 20.01.2010 12:23

Так удивлён $(id)[data]()
 
Обратите внимание на строчку if(type== "string") $(id)[data]();
Я просто даже не ожидал, что так можно , просто попробовал , а вдруг.

Вызов метода
$('div1').dialog('hide');


$.prototype.dialog = function(data)
{
 var id=this.id;
 type= typeof data;
 if(type== "string") $(id)[data](); // Вот это место удивило
return this;
}


А вот объявление метода hide
$.prototype.hide = function() // Скрыть элемент Пример: $('leftmenu').hide();
{
 var id = this.id;
 $(id).css('display','none');

return this;
}

Octane 20.01.2010 14:36

фантастика :D

Dmitry A. Soshnikov 20.01.2010 14:52

mycoding,

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

var foo = {
  bar: function () {}
};

foo.bar();
foo['bar']();

var barName = 'bar';
foo[barName]();

foo['b' + 'ar']();

mycoding 20.01.2010 18:25

Просто так необычно ))) , но так удобно )))


Часовой пояс GMT +3, время: 15:04.