|
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (3)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-07-20
什么都会错误的执行,
把全部代码copy出来,再具体位置上详细的解释,对大家才有帮助 |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-20
var a=(function(){
var aaa=123;
var bbb=456;
return {
fn:function(){aaa}//这样由于调用了本函数外部scope里面对象,所以SpiderMonkey保留了ScopeChain对象
}
})()
eval("ccc=bbb",a.fn)
alert(ccc)
var a=(function(){
var aaa=123;
var bbb=456;
return {
fn:function(a){eval(a)}//这样由于函数内eval,eval默认搜索Scope Chain,所以SpiderMonkey保留了ScopeChain对象
}
})()
eval("ccc=bbb",a.fn)
alert(ccc)
var a=(function(){
var aaa=123;
var bbb=456;
return {
fn:function(){bbb;return 123;}//这样虽然return 123,但是一样调用了外部Scope里面bbb对象,所以SpiderMonkey保留了ScopeChain对象
}
})()
eval("ccc=bbb",a.fn)
alert(ccc)
var a=(function(){
var aaa=123;
var bbb=456;
return {
fn:function(){return 123}//这样没有调用函数外部Scope里面变量,所以SpiderMonkey没有保留ScopeChain对象
}
})()
eval("ccc=bbb",a.fn)
alert(ccc)
|
|
| 返回顶楼 | |




