Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как повесить обработчик на событие "вызов функции"? (https://javascript.ru/forum/misc/13793-kak-povesit-obrabotchik-na-sobytie-vyzov-funkcii.html)

Sweet 16.12.2010 19:39

Цитата:

Сообщение от monolithed
Для объекта

var object = {
    another: function() {
        for(var i in object) {
            if(object[i] == arguments.callee.toString()) {
                alert(i);
                break;
            }
        }
    },
    name: function() {
        for(var i in object) {
            if(object[i] == arguments.callee.toString()) {
                alert(i);
                break;
            }
        }
    }
};

object.name();

stopkran 18.12.2010 06:57

где конструктор?
 
Это всё здорово, но ("почему же все того, как в рот набрали?") вот раз в жизни (в кои-то веки!) человеку понадобился конструктор класса, а специалисты по ООП упрямо молчат. Я, если честно, ожидал увидеть чего-то вроде:

http://code.google.com/p/jsxt/source...s/Benchmark.js

Ну, теперь уже сам нашёл... Правда, он у меня всё равно ни хрена не работает! :-) Разберусь, и напишу куда следует (статаью).

Kolyaj 18.12.2010 07:54

Цитата:

Сообщение от stopkran
Это всё здорово, но ("почему же все того, как в рот набрали?") вот раз в жизни (в кои-то веки!) человеку понадобился конструктор класса, а специалисты по ООП упрямо молчат.

stopkran,
вы о чём? Какой конструктор? Какое ООП?

stopkran 18.12.2010 09:51

ээ...Kolyaj - это один человек, или под этим ником пишет группа лиц, не обязательно знающих друг о друге?

Kolyaj 18.12.2010 10:24

Я-то один, а вот вас сколько, это интересно. Ибо к чему написано сообщение #22 -- непонятно.

with-love-from-siberia 18.12.2010 17:27

Цитата:

Сообщение от stopkran (Сообщение 84242)
... если честно, ожидал увидеть чего-то вроде:

http://code.google.com/p/jsxt/source...s/Benchmark.js

Ну, теперь уже сам нашёл... Правда, он у меня всё равно ни хрена не работает! :-) Разберусь, и напишу куда следует (статаью).

Статья, описывающая приведенный код, уже существует. У Вас какие проблемы? Вы не смогли применить описанное? Задавайте свои вопросы. Я иногда появляюсь здесь - готов ответить на них.

stopkran 24.12.2010 09:46

Цитата:

Сообщение от with-love-from-siberia
Статья, описывающая приведенный код, уже существует

Наверное, на dklab.ru? Я через неё и нашёл скрипт. Проблема такая: функции, скорость которых надо измерять, находятся внутри конструкции (function (){})(). И benchmark не работает, говорит: "1 is not function" или что-то в этом роде (точная цитата - в обещанной статье http://ir2.ru/benchmark.aspx).

Но это полбеды. Гораздо хуже - отсутствие у функций свойства name в ИЕ. Я нашёл только такой способ обойти её:

Функцию makeThead() с параметром t вызывать так:
fixTime(window, "makeThead", t)

А сама функция fixTime будет примерно такой:

function fixTime() {
    var d1, d0 = new Date(), ret, i, 
        obj = arguments[0], f = arguments[1],
        args = Array.prototype.slice.call(arguments, 2)
    obj = obj || window
    if (!(f in obj) || typeof obj[f] !== 'function') return
    ret = obj[f].apply(this, args)
    d1 = new Date()
    Log(d1 – d0, f)
    return ret
}

with-love-from-siberia 24.12.2010 14:50

Вы правы - внутри не работает. Сейчас быстренько проверил в jscript. Если у Вас хоть что-то выводит, у меня было молчание. Когда-нибудь я вернусь к этому файлу и посмотрю в чем дело.

Поправьте в своей статье ссылку на правильный источник.

stopkran 29.12.2010 08:04

Нет, в jscript я не пробовал, было достаточно и того, что в ФФ не работает. Да, видимо, и не должно в принципе работать. Не всё можно совместить.

Моя ссылка ведёт на стр. http://with-love-from-siberia.blogsp...bel/javascript, там есть статья о вашем benchmark (правда, на английском). Я не понял, как лучше изменить эту ссылку. Дайте предпочитаемый адрес, и я исправлю.

with-love-from-siberia 29.12.2010 10:37

По указанной Вами ссылке - первая статья снизу на русском.


Часовой пояс GMT +3, время: 21:46.