VBScript в ASP Classic содержит функцию «int». (Он округляет числа к -∞.) Предположим, что некоторый чрезмерно «умный» кодер создал глобальную переменную с именем «int». Есть ли способ получить исходную функцию? Я пробовал всевозможные обходные пути с обрезами и изворотливыми execs, но без кубиков. Я подозреваю, что это невозможно, но я надеюсь, что кто-то узнает об этом больше, чем я.VBScipt: вызов встроенных функций, затененных глобальными переменными
EDIT: Спасибо за ответы. Поскольку y'all спросила, глобальная переменная, называемая «Int» (хотя, к сожалению, vbscript не учитывает регистр), является фабрикой для класса, аналогичного Integer Java. Свойство default по существу является конструктором с одним аргументом; то есть «Int (42)» дает новый объект IntClass, содержащий 42. Свойство по умолчанию для IntClass, в свою очередь, просто возвращает необработанное число.
Создатель пытался обойти отсутствие собственных пространств имен и статических методов, и решение на самом деле довольно бесшовно. Передайте в IntClass, где ожидается int, и он автоматически активирует свойство по умолчанию. Я пытаюсь исправить последний оставшийся шов: внешний код, вызывающий «int», не будет округлен должным образом (потому что конструктор использует CLng).
То глупое имя переменной, если есть хоть один, я supprised VB даже позволяет более написать ключевое слово как это? Переименование - разумное решение. Быстро взломать может быть, чтобы сбить JScript-версию Int, включить это и назвать это вместо этого, неприятно, хотя ... –
Да, я тоже не поверила, пока не попробовала. Удивительно, что vbscript позволяет вам стрелять в ногу так. Я согласен, что попытка обойти эту проблему будет только для того, чтобы сделать код намного более непостижимым. – NobodyMan