Сообщение от ОмаЭль
|
К сожалению мне малость не понятна конструкция with : собственно как она работает просто при добавлении как текст к переменной source.
|
stringFromInput="cos(x)"//получаем строку из поля ввода
result=Function("x", "with(Math) return "+stringFromInput) (1)
//1) "with(Math) return "+stringFromInput вычисляется в "with(Math) return "+"cos(x)"
//2) "with(Math) return "+"cos(x)" вычисляется в строку "with(Math) return cos(x)" -- строки конкатенируются
//3) выражение Function("x", "with(Math) return cos(x)" ) раскрывается в function (x) { with(Math) return cos(x) }
//4) выполняется инлайн (function (x) { with(Math) return cos(x) })(1) , происходит подстановка 1 на место x
//5) выполняется выражение with(Math) return cos(1), результат возврата записывается в переменную
// with(Math) return cos(1), в твоем случае, это то же что return Math.cos(1)
Вообще, with, это довольно мудреная конструкция, особенно в плане работы с прототипами и глобальной областью. Но в общем случае, ты можешь считать, что она выполняет выражения-свойства и методы в контексте указанного объекта. например
with(Math) alert(sin(1)+cos(1))
Имей в виду, что ее, к сожалению, выкинули из стандарта.
Сообщение от ОмаЭль
|
помочь с отображением
|
Честно говоря, я не понял, что ты хочешь. Напиши лучше словами, опиши задачу, подробно.