Javascript 查找模块中的函数

Javascript 查找模块中的函数,javascript,jquery,Javascript,Jquery,我有以下模块 module.js var Instance = (function () { jsfunc('fn'); var fn = function () { console.log('this in fn'); } }()); jsfunc.js function jsfunc(fn) { // how to find if fn is defined in Instance module } 当我传递字符串时,它是

我有以下模块

module.js

  var Instance = (function () {

    jsfunc('fn');

    var fn = function () {
      console.log('this in fn');
    }

  }());
jsfunc.js

  function jsfunc(fn) {
    // how to find if fn is defined in Instance module
  }

当我传递字符串时,它是
实例
模块中的一个函数。然后我想检查
jsfunc
的参数函数是否在
实例中定义如何实现这一点?

您需要传递函数引用而不是函数名,因为它位于闭包范围内

var Instance = (function () {

    var fn = function () {
        console.log('this in fn');
    }

    jsfunc(fn);

}());

function jsfunc(fn) {
    // how to find if fn is defined in Instance module
    if (typeof fn == 'function') {
        fn()
    }
}
演示:


还要注意,
实例
的值将是
未定义的
,因为匿名函数没有返回值。

您需要传递函数引用,而不是函数名,因为它在闭包范围内

var Instance = (function () {

    var fn = function () {
        console.log('this in fn');
    }

    jsfunc(fn);

}());

function jsfunc(fn) {
    // how to find if fn is defined in Instance module
    if (typeof fn == 'function') {
        fn()
    }
}
演示:


还要注意,
实例
的值将是
未定义的
,因为匿名函数没有返回值。

他是JScript,JQuery genious,machine!:)我想传递字符串而不是函数引用。@2619这样做的具体原因是什么?除非它们在一个共享范围内,否则没有什么可以做的……原因是我将用键/值对而不是一个字符串来传递一个对象。这些对象的值应该是字符串。@2619如果你能真正解释你想做什么,那么我们可以看看如何实现它。。。在所有的语言中都会有一些限制,我们总是可以通过做出一些妥协来找到一些解决方法(如JScript、JQuery genious、machine!)我想传递字符串而不是函数引用。@2619这样做的具体原因是什么?除非它们在一个共享范围内,否则没有什么可以做的……原因是我将用键/值对而不是一个字符串来传递一个对象。这些对象的值应该是字符串。@2619如果你能真正解释你想做什么,那么我们可以看看如何实现它。。。在所有语言中都会有一些限制,我们总是可以通过做出一些妥协来找到一些解决办法