函数表达式中的变量

Variables in function expressions

本文关键字:变量 表达式 函数      更新时间:2023-09-26

前几天我读了很多关于javascript中函数表达式和声明的区别。大多数时候,它说函数表达式是在javascript中创建函数的首选方式。有时它说的是相反的,所以我不确定,但我现在还是用表达。

但是有一件事我找不到作为例子的表达式。这可能是一个愚蠢的问题,但我真的很想知道。假设我们有一个像

这样的函数表达式
var nav = {
    init: function() {
        // Code
    }, 
    open: function() {
        // Code
    },
    close: function() {
        // Code
    }
};

在这种情况下,它是一个用于下拉导航之类的函数。您应该能够打开和关闭它,只是作为一个例子。现在我问你,我如何在代码中定义变量,这样我就可以在"打开","关闭"answers"初始化"函数中使用这些变量?在这种特殊情况下,我可能需要这样的变量:

var
    $nav = $(".nav"),
    navHeight = $nav.height(),
    navTest = "Test";

你通常是怎么做的?也许这个问题在别处已经有答案了,但我真的什么也找不到,也许是因为我搜索了错误的关键词。

如果有人能给我解释一下,或者给我一个教程的链接,我将非常感谢-对于一个javascript函数初学者:)

谢谢:)

您可以将共享变量保存在闭包中,使它们对对象的方法保持私有。一种常用的技术是模块模式。

你可能也对Javascript中的私有成员感兴趣。

那么,您正在创建函数作为对象nav的属性。您可以简单地将变量作为其他属性添加到这些函数中。

var nav = {
    myHeight: 12,
    height: function() {
        return this.myHeight;
    },
    increaseHeight: function(howMuch) {
        this.myHeight += howMuch;
    }
    init: function() {
        // use this.myVariable here
    }, 
    // ...
};