是否可以调用“父”函数之外的函数?

时间:2014-08-03 08:18:32

标签: javascript jquery function

我想知道是否有可能在其父母"之外调用一个函数。功能:

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();

如何在主函数之外定义它?

1 个答案:

答案 0 :(得分:3)

在函数中声明的符号是作用于该函数(以及任何嵌套函数)的范围,因此它们不能从该函数外部访问,尤其是因为,因为每次调用该函数都会创建这些符号的新版本'使用函数外部的值会引起使用哪个的问题。

但是函数是对象,因此你可以获得对它们的引用,如果你可以获得对它们的引用,你可以调用它们。通常,您可以使用onResize中的代码或MyFunction中的代码来引用MyFunctionMyFunction的特定调用创建的onResize返回对该调用创建的function myFunction( element ) { var width; function onResize() { width = element.width(); } onResize(); return onResize; } $(window).resize(MyFunction()); 的引用:

{{1}}