我能以某种方式以编程方式访问当前范围的激活对象吗?

时间:2016-05-26 14:40:56

标签: javascript scope cross-browser

我试图了解如何理解闭包内发生的事情并使用其中创建的变量和函数。

我的限制是我可以在现有的闭包中添加我想要的代码行,但不能编辑任何现有的代码。

可以这样做吗?

<script>

var scopeClone = {};
(function(scopeClone){
    //Activation Object {}
    scopeClone.a = "a";
    var b = "b" 
    //Activation Object {b:"b"}

    //my custom code here
    //We want to copy activation object properties to scope obj

})(scope);
//At this stage, we want to get -> scopeClone.b = "b"
</script>

1 个答案:

答案 0 :(得分:3)

不确定是否可以完成:

https://jsfiddle.net/ltlombardi/jvts4m3y/

  

10.1.6激活对象

     

激活对象纯粹是一种规范机制。 ECMAScript程序无法访问激活对象。它可以访问激活对象的成员,但不能访问激活对象本身。当调用操作应用于其基础对象是激活对象的Reference值时,null将用作调用的此值。



从这里开始:
http://interglacial.com/javascript_spec/a-10.html

  

请注意,Activation对象是一种内部机制,程序代码永远无法访问它。