Объявление свойств и методов скриптлета

   
На этом шаге мы рассмотрим способы описания свойств и методов скриптлета.

   
В скриптлетах все свойства и методы, явно не объявленные открытыми, считаются закрытыми. Как и в любом HTML-документе, элементы
<SCRIPT> - локальные для документа, в котором они определены.

   
Существует два способа объявления открытых свойств и методов. Первый заключается в простом добавлении приставки
public_ к именам всех открытых свойств и методов. Открытые свойства можно также определить, объявив их
как функции с приставками public_get_ или public_put_. Это позволяет более тонко управлять
свойством - например, Вы можете создать свойство только для чтения, определив функцию public_get() и
отказавшись от функции public_put().

   
В следующем примере приведен простой скриптлет, содержащий элемент с идентификатором p1. В блоке
сценария после этого элемента предоставляются свойства text и color, задаваемые функциями get() и set().
Скриптлет также предоставляет функцию animate().

<HTML>
<HEAD></HEAD>
<BODY>
<FONT ID="f1" color="black">
<P ID="p1">Это абзац текста.</P>
</FONT>
<SCRIPT LANGUAGE="JavaScript">
  var public_text = p1.innerText;
 
  function public_get_color() 
  {
    return f1.color;
  }

  function public_put_color(color)
  {
    f1.color = color;
  }

  function public_animate()
  {
    // Код, выполняющий анимацию
  }
</SCRIPT>
</BODY></HTML>

   
Если в странице-клиенте объявить экземпляр этого объекта с именем MyScriptlet (ниже показано, как это сделать), то
станут доступными все перечисленные ниже операции JavaScript:

MyScriptlet.text = "Hello"; 
.    .    .
MyScriptlet.animate();
.    .    .
var OldColor = MyScriptlet.color;
.    .    .
MyScriptlet.color ="blue";

   
Другая методика определения открытого интерфейса скриптлета состоит в применении объекта public_description языка
JavaScript. Создается JavaScript-конструктор с объявлением открытых свойств и методов скриптлета,
который затем присваивается объекту скриптлета public_description. Таким образом, свойства и методы
скриптлета, не объявленные в конструкторе, остаются закрытыми.

   
Скриптлет из предыдущего примера, созданный этим способом, выглядит так:

<HTML><HEAD></HEAD>
<BODY>
<FONT ID="f1" color="black">
<P ID="p1">Это абзац текста.</P>
</FONT>
<SCRIPT LANGUAGE="JavaScript">
  public_description = new CreateScriptlet();
  function CreateScriptlet()
  {
    this.text = p1.innerText;    // Свойство text
    this.put_color = putcolor;   // Свойство соlor (запись)
    this.get_color = getcolor;   // Свойство color (считывание)
    this.animate = doAnimation;  // Метод animate()
  }

  function getcolor()
  {
    return f1.color; 
  } 

  function putcolor(color)
  {
    f1.color = color; 
  }

  function doAnimation() 
  {
    // Код, выполняющий анимацию 
  }
</SCRIPT> 
</BODY></HTML>

   
Имя конструктора (оно может быть любым) присваивается объекту public_description. В приведенном выше примере конструктор
CreateScriptlet() определяет свойства text и color, задавая значение свойства text и
определяя имена закрытых функций getcolor() и putcolor(), служащих для считывания и задания
значения свойства color. Конструктор также определяет метод animate() и имя закрытой функции
doAnimation(), реализующей этот метод.

   
Способ с public_description применяют в основном разработчики, опытные в области объектно-ориентированного программирования.
Он позволяет четко разделить интерфейс и его реализацию, а также компактно определить интерфейс скриптлета,
разместив его в одном месте (обычно - в начале блока <SCRIPT>).

   
На следующем шаге мы рассмотрим события скриптлета.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий