Клиентский JavaScript. Справочник

         

Пример


Здесь создаётся метод str_rep и используется оператор String.prototype.rep = str_rep для добавления метода всем объектам String. Все объекты, созданные с помощью new String(), имеют теперь и этот метод, хотя объекты уже были созданы раньше. Затем создаётся альтернативный метод и добавляется к одному из объектов String через использование оператора s1.rep = fake_rep. Метод str_rep других String-объектов не изменяется.

var s1 = new String("a")
var s2 = new String("b")
var s3 = new String("c") // Создаётся метод repeat-string-N-times для всех объектов String
function str_rep(n) {
var s = "", t = this.toString()
   while (--n >= 0) s += t
   return s
} String.prototype.rep = str_rep s1a=s1.rep(3) // возвращает "aaa"
s2a=s2.rep(5) // возвращает "bbbbb"
s3a=s3.rep(2) // возвращает "cc"// Создаётся альтернативный метод и присваивается только одной String-переменной
function fake_rep(n) {
   return "repeat " + this + " " + n + " times."
} s1.rep = fake_rep
s1b=s1.rep(1) // возвращает "repeat a 1 times."
s2b=s2.rep(4) // возвращает "bbbb"
s3b=s3.rep(6) // возвращает "cccccc"

Функция из этого примера работает также со String-объектами, созданными без использования конструктора String. Следующий код возвращает "zzz".

"z".rep(3)



Содержание раздела