Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Особенности синтаксиса JS
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Особенности синтаксиса JS

Страниц (1): [1]
 

1. Slavenin - 07 Июня, 2011 - 21:16:07 - перейти к сообщению
читал про объект Range встретил следующую синтаксическую конструкцию :
CODE (javascript):
скопировать код в буфер обмена
  1. $ieTextRange = {
  2.      create : function() {
  3.          // Найдем кнопку
  4.          var button = document.getElementById('buttonId');
  5.          // Если мы в ИЕ
  6.          if ( button.createTextRange && button.createTextRange() != undefined ) {
  7.              // Создаем TextRange
  8.              var rng = button.createTextRange();
  9.              // И вернем текстовое содержимое полученного объекта
  10.              return rng.text;
  11.          } else
  12.              return 'Вероятно, у вас не IE (поздравляем!), смотрите реализацию Range выше';
  13.      }
  14. }


подскажите в чем ее смысл, или киньте ссылку где об этом можно почитать, пытался полазить по поисковикам, но так и не сумел правильно сформулировать вопрос...Улыбка
2. Viper - 08 Июня, 2011 - 07:14:27 - перейти к сообщению
3. Slavenin - 08 Июня, 2011 - 11:39:18 - перейти к сообщению
хм, я наверн неправильно сформулировал вопрос. как создавать и управлять объектом range я понял, интересует именно синтаксическая составляющая данного скрипта:

CODE (javascript):
скопировать код в буфер обмена
  1. $ieTextRange = {
  2.      create : function() {
  3.          ...
  4.          } else
  5.          ...
  6.      }
  7. }


в частности, для чего применяется знак $ перед ieTextRange и конструкция create : function()
4. DlTA - 08 Июня, 2011 - 11:47:31 - перейти к сообщению
в JS имена могут называться с символа $, это не конструкция
5. Slavenin - 08 Июня, 2011 - 12:18:24 - перейти к сообщению
DlTA пишет:
в JS имена могут называться с символа $, это не конструкция

хорошо, значит получается что создается объект $ieTextRange, а create : function() что означает? и если create это команда, то логично предположить, что существуют еще аналогичные ей. Вопрос где их можно найти? Улыбка
6. Ch_chov - 08 Июня, 2011 - 12:43:11 - перейти к сообщению
Цитата:
а create : function() что означает?

create это своство объёкта, а function его значение.
По другому это можно записать так:
CODE (javascript):
скопировать код в буфер обмена
  1. $ieTextRange.create = function () { ... }

Цитата:
Вопрос где их можно найти?

CODE (javascript):
скопировать код в буфер обмена
  1. console.log($ieTextRange)
7. Slavenin - 08 Июня, 2011 - 12:51:46 - перейти к сообщению
то есть по другому это можно записать как?

CODE (javascript):
скопировать код в буфер обмена
  1. with($ieTextRange)
  2. {
  3.  create = function(){...}
  4. }
8. DlTA - 08 Июня, 2011 - 13:11:00 - перейти к сообщению
Slavenin пишет:
with($ieTextRange)
{
 create = function(){...}
}
помоему в JS нет такой конструкции
9. Slavenin - 08 Июня, 2011 - 13:17:07 - перейти к сообщению
DlTA пишет:
помоему в JS нет такой конструкции

http://javascript[dot]ru/basic/syntax-switch-for Подмигивание
10. DlTA - 08 Июня, 2011 - 14:18:27 - перейти к сообщению
смущает
http://javascript.ru пишет:
У with есть одна большая проблема, из-за которой многие вообще рекомендуют забыть эту конструкцию.
А именно - внутри блока with абсолютно нельзя сказать, откуда будет взята та или иная переменная.
11. Slavenin - 08 Июня, 2011 - 18:57:34 - перейти к сообщению
DlTA пишет:
смущает
http://javascript[dot]ru пишет:

и вместе с тем далее
http://javascript[dot]ru пишет:
Цитата:
С другой стороны, синтаксис with удобнее и полезен там, где ошибок уж точно не может быть. Например, при манипуляции стилями.


и все-таки синтаксис очень удобен, и если пользоваться им с умом и определенной долей осторожности, то можно упростить некоторые вещи Улыбка
12. IllusionMH - 08 Июня, 2011 - 21:54:34 - перейти к сообщению
Slavenin, по поводу with загляните сюда Mistake 6 - You’re Using with or eval
так как раз показан пример где код
CODE (javascript):
скопировать код в буфер обмена
  1. with($ieTextRange)
  2.  {
  3.   create = function(){...}
  4.  }

не прокатит и описано почему.

 

Powered by ExBB FM 1.0 RC1