Javascript获取或设置值而不是仅重命名

时间:2013-05-07 21:47:17

标签: javascript jquery pointers

我在Javascript中遇到了一个问题,坦率地说,它在我正在做的很多事情上都很混乱。 Javascript中是否有任何方法可以将实际值分配给变量而不实际执行此操作?我猜这是一种指针问题,虽然我对指针不熟悉。

例如,当我这样做时:

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

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

例如,如果高度是前12,那么我在上面做了我的代码,myVar现在等于12.即使在高度变为16之后,myVar变量的值也会为12.

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

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

任何帮助都会很棒!

编辑:

重申一下!每次我在高度变化后调用它时,myVar都会改变。这是错误的,我无法弄清楚如何阻止它!

3 个答案:

答案 0 :(得分:2)

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

编辑:添加“var”因为:OCD。

答案 1 :(得分:1)

在javascript中实际上有两种对象。指针(表示它们存储数据地址)和变量(它们存储实际数据)。棘手的部分是赋值运算符。 为函数赋值时,生成的var将是一个指针。例如:

var myPointer = MyObject();

但那

var myVariable = 3;

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

答案 2 :(得分:1)

如果您想玩它,这里有一些工作样本。

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

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

});

$("#btn").click(function() {
    resize();
});