微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从创建的函数获取创建函数的函数的参数

如何解决如何从创建的函数获取创建函数的函数的参数

这个问题很难描述,所以我会尽力的。

我需要反转使用代码流混淆,数据转换和其他方法的混淆JavaScript。 在此代码中,程序将保存一些函数以在流程中使用它们。 这些函数是通过调用特定函数创建的,我需要使用创建的函数获取该特定函数的参数(这些参数对于预测堆栈流很重要)

这里是一个例子:

function createFunction(arg){
    return function(){
        'use strict';
        // Do some things with arg
        return true;
    }
}
var func = createFunction(5);
// Need to get the argument 5 of createFunction from func var
var bool = func();

注意:返回的函数处于严格模式

我不知道是否有可能,我尝试了很多事情,检查了每个原型或属性等。

谢谢。


编辑:

如果不编辑任何代码,这是不可能的,JavaScript中的闭包和词法作用域确实非常严格,就我而言,我只是在函数声明后创建了一个断点,然后我自己通过向返回的函数添加原型来覆盖了函数本身参数。

function createFunction(arg){
    var fn = function(){
        'use strict';
        // Do some things with arg
        return true;
    }
    fn.prototype.arg = [arg];
    return fn;
}
var func = createFunction(5);
var arg = func.prototype.arg; // 5 is here Now
var bool = func();

这是一个很好的解释:JS: Nested functions gain a copy of the outer function's parameters?

还有一些文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。