Вызов функции, определенной внутри функции
* Есть ли способ вызвать функцию, определенную внутри другой функции в javaSCRIPT? Например:
window.onload() = function() {
function my_function(){
print("Blah");
};
};
function function_two(){
my_function();
};
Есть ли способ сделать что-то вроде выше (вызов my_function в function_two, хотя он определен внутри функции window.onload())? В моем фактическом коде, который также использует библиотеку raphael.js, я пытаюсь написать кнопку в HTML, которая использует функцию onClick, вызывает функцию (например, function_two), которая выполняет функцию, определенную в window.onload() ( как my_function). Однако консоль говорит, что my_function - undefined.
Ответы
Ответ 1
Объем функции является основной проблемой здесь, как сказали Зейчин и Тревор. Я думал, что предлагаю другой способ справиться с этим. В принципе, вы можете установить свою функцию в переменную, которая в более высокой области (то есть доступна как для функций onload, так и для функции function_two), определяя ее внутри функции onload, как вы изначально:
var myFunction; //This is the placeholder which sets the scope
window.onload() = function() {
myFunction = function() { //Assign the function to the myFunction variable
print('blah');
}
}
function function_two() {
myFunction();
}
Это может быть удобно, если вы только знаете информацию, которая вам нужна для myFunction, когда вы находитесь в событии onload.
Ответ 2
window.onload = function() {
my_function()
};
function my_function(){
alert("Blah");
};
function function_two(){
my_function();
};
Ответ 3
Вы не можете делать то, что вы просите.
Область функции my_function()
находится только в анонимной функции, function()
. Он выпадает из области действия, когда метод не выполняется, поэтому это невозможно.
Тревор ответ - это способ сделать это.