我有以下模块
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
}
当我传递字符串时,这是instance
模块中的一个函数。然后我想检查jsfunc
中是否定义了Instance
的参数函数。 如何实现这一目标?
答案 0 :(得分:4)
您需要传递函数引用而不是函数名,因为它位于闭包范围
中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()
}
}
演示:Fiddle
另请注意,Instance
的值为undefined
,因为匿名函数没有返回任何值。