Как распознать метод JavaScript (функцию) - PullRequest
0 голосов
/ 14 июля 2009

Я пишу плагин для VS2008 и хотел бы узнать метод JavaScript (функцию) У меня есть файл - sample.js: `

        function test0()
        {
            var i = 0;
            {
                var j = 0;
            }
            var array = { 1: 2, dd: 10, aaa: 3 };
                    return array;
        }

        function test1()
        {
            var ii = "x";
            {
                var xx = "x" + ii;
            }
            return ii;
        }

`

Как распознать эти методы? Использовать регулярные выражения?

Ответы [ 2 ]

4 голосов
/ 14 июля 2009

Помните, что функции JavaScript могут быть написаны несколькими способами. Вы показали определение функции стиля "C", но есть и другие.

Вы увидите много "var test2 = function () {}".

Вы также увидите их как члены объектов "test3: function () {}".

И вы можете использовать «новый», но это не очень популярно.

И не забывайте, что многие функции JavaScript являются анонимными.

Для правильной меры вы должны обработать шаблон немедленного вызова:

(function () {

  // ...

}());

Будет ли код, который вы увидите, ограничиваться какими-то добровольными правилами? Если нет, у вас есть несколько разборов, когда вы видите «функцию». Тем более, что «функция» может быть просто словом в каком-то тексте, и у вас есть пара различных типов цитат и несколько видов стилей комментариев, которые нужно распознать, чтобы увидеть, является ли это просто частью текстовой строки или частью комментария. *

0 голосов
/ 14 июля 2009

Поскольку функция является зарезервированным ключевым словом, можно с уверенностью предположить, что, пока слово function не находится в кавычках, оно должно быть функцией javascript.

регулярное выражение должно работать. Не забудьте проверить, заключено ли слово в кавычки (что сделало бы слово строкой).

...