0

最近几天我对javascript中函数表达式和声明的区别进行了很多讨论。大多数时候它说函数表达式是在 javascript 中创建函数的首选方式。有时它说的相反,所以我不确定,但我现在还是保持表达。

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

var nav = {
    init: function() {
        // Code
    }, 
    open: function() {
        // Code
    },
    close: function() {
        // Code
    }
};

在这种情况下,它是一个下拉导航或其他东西的功能。作为示例,您应该能够打开和关闭它。现在我问你,我如何在该代码中定义变量,以便我可以在“open”、“close”和“init”函数中使用它们?在那种特殊情况下,我可能需要如下变量:

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

你通常会怎么做?可能是这个问题已经在其他地方得到了回答,但我真的找不到任何东西,也许是因为我搜索了错误的关键字。

如果有人能解释我/给我发送一个教程链接,我将非常感激 - 对于一个 javascript 函数初学者:)

谢谢 :)

4

2 回答 2

1

好吧,您正在创建函数作为 object 的属性nav。您可以简单地将变量添加为其他属性以及这些函数。

var nav = {
    myHeight: 12,
    height: function() {
        return this.myHeight;
    },
    increaseHeight: function(howMuch) {
        this.myHeight += howMuch;
    }
    init: function() {
        // use this.myVariable here
    }, 
    // ...
};
于 2013-06-20T23:36:15.540 回答
1

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

您可能还对Javascript 中的 Private Members感兴趣。

于 2013-06-20T23:42:00.660 回答