У меня есть следующий модуль
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
параметра jsfunc
внутри Instance
. Как я могу это достичь?
Вам нужно передать ссылку на функцию вместо имени функции, поскольку она находится в области закрытия
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()
}
}
Демо: скрипка
Также обратите внимание, что значение Instance
будет undefined
так как нет значения, возвращаемого анонимной функцией.