Цитата:
|
к тому же эти строчки совсем не нужны (да они и не действуют на самом деле) - все равно в качестве имени поля подставится то, которое передано во внешнюю функцию...
|
А ты уверен?

какая внешняя функция,
если только обявлять параметр глобально как сдалал уважаемый SPV, то конечно будет видно, но если делать нормально, то функция (Array.sort) уже рутовая функция, и к локальным переменным первой фунции уже доступа не имеет.

Код:
Array.prototype.sortOnNum = function(param)
{
var sortOn_function = function(a,b)
{
trace(param)
a = Number(a[param]);
b = Number(b[param]);
return (a<b)*-1||(a>b)*1||0;
}
this.sort(sortOn_function);
}
test = [{x:600, y:20}, {x:500, y:20}, {x:0, y:20}, {x:300, y:20}, {x:100, y:20}, {x:400, y:20}, {x:200, y:20}];
test.sortOnNum()
даже если так:

Код:
Array.prototype.sortOnNum = function(p )
{
var param = p;
var sortOn_function = function(a,b)
{
trace(param)
a = Number(a[param]);
b = Number(b[param]);
return (a<b)*-1||(a>b)*1||0;
}
this.sort(sortOn_function);
}
test = [{x:600, y:20}, {x:500, y:20}, {x:0, y:20}, {x:300, y:20}, {x:100, y:20}, {x:400, y:20}, {x:200, y:20}];
test.sortOnNum()
test = [{x:600, y:20}, {x:500, y:20}, {x:0, y:20}, {x:300, y:20}, {x:100, y:20}, {x:400, y:20}, {x:200, y:20}];
test.sortOnNum()
Синтаксис вполне корректный и регулярно используемый(мной),
Нет все вполне логично, и параметры в теле функции можно хранить вполне.
к тому же когда мы инициализируем фунцию, она создается "с чистого листа" как бы новый объект, и экземляров функции можно создать несколько, этакий конструктор.....
кстати ты интересовался как то о использовании регистер класс без мувиков,
увидел я такое, и понял для чего, могу показать,