我在Javascript中遇到了一个问题,坦率地说,它在我正在做的很多事情上都很混乱。 Javascript中是否有任何方法可以将实际值分配给变量而不实际执行此操作?我猜这是一种指针问题,虽然我对指针不熟悉。
例如,当我这样做时:
myVar = $(".myClass").height();
我没有将myVar设置为等于返回的值,我将myVar设置为等于函数,以便在调用myVar时始终再次检查它。我希望myVar在赋值后等于文字数。因此,再次调用变量时它不会改变。
例如,如果高度是前12,那么我在上面做了我的代码,myVar现在等于12.即使在高度变为16之后,myVar变量的值也会为12.
有解决方法吗?有人可以确定这是什么叫,所以我可以做更多的研究吗?当我需要函数返回的值作为常量时,这变得很困难。
我知道Mozilla有一个const类型,但IE不支持。
任何帮助都会很棒!
编辑:
重申一下!每次我在高度变化后调用它时,myVar都会改变。这是错误的,我无法弄清楚如何阻止它!
答案 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();
});