只显示主题贴
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) ...
- 进入论坛 AJAX 版
为什么要知道每个函数对象execution context对应的调用函数,如果非得想知道,大可以把函数引用传近来,caller意义不大
- 进入论坛 AJAX 版
楼上你真好有意思,有这么写代码的马(function (){alert("hello,world"); });var a=0;(); 第一个()里面是函数对象,后面()是执行,你里面加句var ......什么的是怎么意思还有第一个()可以用+ -代替+function (){alert("hello,world"); }();
- 进入论坛 AJAX 版
我其实觉得就是cs178写的"MOZ在打开ScopeChain优化的情况下设计这个参数实在是愚蠢",但是具体优化不怎么清楚,请帮助讲讲mozilla/js/src/jsobj.c里面关于优化的部分,对于c还是不是很了解
- 进入论坛 AJAX 版
好,经过上面讨论,我从新写下那句话"看来SpiderMonkey引擎对于function当中引用了function外部scope chain里面任何一变量的函数对象,或者在函数内有进行eval操作的,会被js引擎视为为了函数的继续执行所以有必要保留scope chain对象,这种function在作为传递给eval第2参数时,eval回错误的把函数的scope chain对象当作第二参数对象,进而对于eval第一参数可执行代码文本的执行环境进行错误的with操作,把刚才提到的错误返回的function scope chain对象增加到执行环境里面scope chain里面的最前段,但是执行环境 ...
- 进入论坛 AJAX 版
"Execution Contexts
When control is transferred to ECMAScript executable code, control is entering an execution context. Active
execution contexts logically form a stack. The top execution context on this logical stack is the running
execution context."
执行环境
当js开始转到执行可运行代码的时候,这个时候js就创建了相应的执行环境.各种全局代 ...
- 进入论坛 AJAX 版
"1和new Number(1)没有区分 "谁告诉你的,Primitive value和Object一样吗
- 进入论坛 AJAX 版
- 浏览: 3535 次
- 性别:

- 来自: 天津

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
Prototype修改版本,比jQ ...
我想知道上面的 Java 代码怎么加上去的,嘿嘿,是不是太菜了??
-- by sunfengcheng -
如何跨越原形链调方法
把函数作为第一公民放在前头调用了
-- by sp42 -
如何跨越原形链调方法
这种形式在ext的源码中经常的使用,比如ext在往arguments追加参数的时 ...
-- by campaign -
如何跨越原形链调方法
一个字:“妙”,哈哈
-- by sp42 -
Prototype修改版本,比jQ ...
1. 1.6 rci基本就是最后版本了,"Barring any heinous ...
-- by afcn0






评论排行榜