eval可以把字符串当成语句来执行。
写在按钮中的函数:
var textValue = textfield1_win.getValue();
if (textValue == '') {
textValue = 'no Value';
}
var funcString = 'alert(\'' + textValue + '\')'; // 前面可以加var,也可以不使用var, 如果有全局变量,而又没有使用var,则会使用全局的funcString,如果没有全局变量funcString,即使没有var,也会自动创建 funcString变量,作用域,为这个括号之内。 变量的生命周期如何维护的? :先查找全局变量表,看是否有这个变量,如果有,直接使用全局变量?,如果没有,则创建新对象,并声明这个对象为局部变量? 或者根本不用声明,函数调用好之后,直接释放这个变量。 连函数调用的栈都被释放了,哪里来的变量,呵呵
eval(funcString);
允许eval使用全局闭包并不是一个好主意。因为从函数闭包的概念来说,不应当让eval()对函数之外产生副作用。
代码总是要运行在一定的闭包之中的。有两类闭包,分别是全局闭包和函数闭包。
写一个面板,把和JS相关的操作通过按钮集中到一块儿。
这些代码最好是分割到几个不同的js脚本中间,这样比较容易管理。