![]() |
|
||||||||||
|
|
|
|||||
|
и своей "практики" могу привести пример, где Function.call полезен.
Представьте себе что у вас есть метод который принимает строку формата "something with %var%, %var%" и неограниченное количество параметров для подставления вот в такие форматы "%var name%" и его сигнатура вот такая: function printf(str:String, ...args:Array):String и вот вам понадобилось этот самый метод завернуть в другой, например в нем вы описываете попытку взять эту саму str из xml. и этот метод для удобства имеет точно такую же сигнатуру: function getVarByParams(varname:String, ...params:Array):String только в его теле вы сталкиваетесь с тем, что передать ...params вы не можете просто передав как printf(var_from_xml, params); так как будет передан просто массив параметров первым элементом массива. В этом случае Function.call может оказаться спасительным printf.call(null, var_from_xml,params) вызовет метод именно так как вы этого и ожидали. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
ramshteks, всё круто, только это не про call.
|
|
|||||
|
Действительно, перепутал. Использование несколько иное и для apply
|
|
|||||
|
Цитата:
__________________
Тут мужик танцует и поёт про флэш |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:18. |
|
|
« Предыдущая тема | Следующая тема » |
|
|