Проблемы вызова функции
Привет, друзья!
Проблема в следующем: Не получается вызвать одну функцию(init()) в теле другой, пишет init is not defined, что, вероятно, указывает на недоступность в связи с областью видимости. Функция init определена в такой области в файле a.js: (function ($) { $( pieChart ); function pieChart() { function init() } })(jQuery) и я хочу вызвать ее в другой функции другого файла(b.js) и в другой области видимости Скажите пожалуйста, можно каким-либо образом вызвать функцию, указав соответствующую область видимости? В общем подскажите, как решить мою проблему. Спасибо! |
Да, понятно, что так некрасиво.
Нашел все таки другой выход - объединил 2 файла) На самом деле думал, что есть метод, с помощью которого можно вызвать функцию из под нужной области видимости Спасибо |
у меня аналогичная проблема, может мне ответит кто?
есть примерно такой код: function a(){ var rrr = 8; function aim(arg){ console.log('aim' + arg); console.log(rrr); } }; function b(){ a.aim('this is argument'); }; вызов a.aim('this is argument'); не работает, консоль выводит сообщение Цитата:
|
cyklop_77, консоль все правильно говорит. Вложенная функция не становится свойством функции, внутри которой она определена.
Чтобы ваш код работал надо сделать так: function a(){ var rrr = 8; this.aim = function(arg){ console.log('aim' + arg); console.log(rrr); } }; function b(){ new a().aim('this is argument'); }; Или так: var a = (function(){ var rrr = 8; return { aim: function(arg) { console.log('aim' + arg); console.log(rrr); } } })(); function b(){ a.aim('this is argument'); }; |
спасибо
|
Часовой пояс GMT +3, время: 01:14. |