在JavaScript中,有没有办法获得闭包参数

时间:2018-06-17 04:12:25

标签: javascript compilation closures

我有两个档案:

//------------a.js--------------

function a(){
  return '1'
}

var testCase = {
  func(){
    return a()
  }
}

module.exports = testCase

//------------b.js--------------

var testCase = require('./a.js')

//Can I get closure parameters(function a) that not modify a.js?

有没有办法在JavaScript中获取闭包参数?谢谢!

1 个答案:

答案 0 :(得分:1)

如果你想从一个闭包中返回参数列表,比如从函数walk(){}里面的闭包运行(x,y){}获取get x和y,那么下面的代码可能会有所帮助。

    function walk() {
        function run(x, y) {
            return x + y;
        }

        return run;
    }

    var fun = walk();

    fun.getParameters = function () {
        var functionText = this.prototype.constructor.toString();

        return functionText
            .substring(functionText.indexOf('(') + 1, functionText.indexOf(')'))
            .split(',')
            .map(x => x.trim());
    };

    console.log(fun.getParameters());