0

我在 Javascript 中遇到问题,坦率地说,我正在做的很多事情都令人困惑。Javascript中是否有任何方法可以为变量分配实际值而无需真正这样做?我猜这是一个指针问题,虽然我不熟悉指针。

例如,当我这样做时:

myVar = $(".myClass").height();

我没有将 myVar 设置为等于返回的值,而是将 myVar 设置为等于该函数,以便在调用 myVar 时始终再次检查它。我希望 myVar 等于分配后的文字数字。因此,当再次调用该变量时,它不能改变。

例如,如果高度最初是 12,那么我执行上面的代码,myVar 现在将等于 12。即使在高度更改为 16 之后,myVar 变量的值也会为 12。

有没有解决的办法?有人可以确定这叫什么,以便我可以做更多的研究吗?当我需要函数返回的值作为常量时,这变得很困难..

我知道 Mozilla 有一个 const 类型,但 IE 不支持。

任何帮助都会很棒!

编辑:

只是重申!每次我在高度改变后调用它时,myVar 都会改变。这是错误的,我不知道如何阻止它!

4

3 回答 3

2
var myVar = myVar===undefined ? $(".myClass").height() : myVar; 
//first time, assign. second time, ignore and retain initial value.

编辑:添加“var”,因为:强迫症。

于 2013-05-07T21:53:29.153 回答
1

如果您想使用它,这里有一些工作示例。

http://jsfiddle.net/Madthew/Xfass/3/

var myVar2 = myVar2===undefined ? $(".myClass").height() : myVar2;
$(document).ready(function() {
  myVar = $('.myClass').height();

});

$("#btn").click(function() {
    resize();
});
于 2013-05-07T22:08:56.920 回答
1

在 javascript 中实际上有 2 种对象。指针(这意味着它们存储数据地址)和变量(它们存储实际数据)。棘手的部分是赋值运算符。当您将函数分配给变量时,生成的 var 将是一个指针。例如:

var myPointer = MyObject();

但是那个

var myVariable = 3;

将为变量分配一个实际值。在您的示例中,您正在分配一个值。

于 2013-05-07T21:53:50.670 回答