过去几天我对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函数初学者我会非常感激:)
谢谢:)
答案 0 :(得分:1)
好吧,您正在创建函数作为对象nav
的属性。您可以简单地将变量作为其他属性与这些函数一起添加。
var nav = {
myHeight: 12,
height: function() {
return this.myHeight;
},
increaseHeight: function(howMuch) {
this.myHeight += howMuch;
}
init: function() {
// use this.myVariable here
},
// ...
};
答案 1 :(得分:1)
您可以将共享变量保留在闭包中,使其对您的对象方法保密。常见的技术是module pattern。
您可能也对Private Members in Javascript感兴趣。