我想知道是否有可能在其父母"之外调用一个函数。功能:
var $element = $( '.element' );
function myFunction( element ) {
var width;
function onResize() {
width = element.width();
}
onResize();
}
$( window ).resize(function() {
onResize();
});
控制台返回:未捕获的ReferenceError:未定义onResize 我认为可以在函数外部定义变量:
var variable;
$( window ).resize() {
variable = 1;
});
$( window ).resize();
如何在主函数之外定义它?
答案 0 :(得分:3)
在函数中声明的符号是作用于该函数(以及任何嵌套函数)的范围,因此它们不能从该函数外部访问,尤其是因为,因为每次调用该函数都会创建这些符号的新版本'使用函数外部的值会引起使用哪个的问题。
但是函数是对象,因此你可以获得对它们的引用,如果你可以获得对它们的引用,你可以调用它们。通常,您可以使用onResize
中的代码或MyFunction
中的代码来引用MyFunction
对MyFunction
的特定调用创建的onResize
。 返回对该调用创建的function myFunction( element ) {
var width;
function onResize() {
width = element.width();
}
onResize();
return onResize;
}
$(window).resize(MyFunction());
的引用:
{{1}}