自动执行javascript函数并稍后调用它们?

Posted

技术标签:

【中文标题】自动执行javascript函数并稍后调用它们?【英文标题】:Auto-execute javascript functions AND call them later? 【发布时间】:2012-05-29 01:23:34 【问题描述】:

我在很多地方读到过,您可以通过以下方式在加载时自动启动 js 函数:

$(function() 
    // code...
);

或者

var myFunc = function() 
   // code...
();

我的问题是,你以后如何调用这些函数?因为简单的声明

function myFunc() 
    // code...

可以轻松召回,但不会自动启动。我必须在加载时手动调用它们,这很烦人,占用代码中的空间,如果我忘记了它可能是一个错误源。

如果你不明白我的解释,这里有一个例子:

我的表格中有一个“体重”和一个“身高”字段,我需要计算 BMI(身体质量指数)。 当页面加载时,重量和高度由数据库填充,然后我在一切准备就绪时启动计算。 但后来,如果用户改变体重或身高,BMI 必须立即重新计算。最好的方法是什么?使用 jquery 或者纯 JS,我不介意。

谢谢。

【问题讨论】:

【参考方案1】:

A reusable immediate function

var reference = (function thename()

    //function body

    return thename; //return the function itself to reference

()); //auto-run


reference(); //call it again
reference(); //and again

请注意,调用该函数会返回对您刚刚调用的函数的引用。

var anotherReference = reference(); //anotherReference === reference

【讨论】:

“reference”和“thename”是否相同有关系吗? @Willy 可能(尝试过并且有效),但我想让它们有所不同以避免混淆。

以上是关于自动执行javascript函数并稍后调用它们?的主要内容,如果未能解决你的问题,请参考以下文章

深入理解JavaScript系列:立即调用的函数表达式

深入理解 JavaScript

JavaScript深入理解

如何创建结构向量并稍后初始化它们

Javascript 自动执行函数(立即调用函数)

JavaScript的自调用函数