我有一个myVariable不断变化的变量。在某些时候,我想捕捉的值的myVariable(不是引用到myVariable)到另一个变量myVariableAtSomePoint。
示例代码:
var myVariable = 1;
function test () {
var myVariableAtSomePoint= myVariable;
console.log(myVariableAtSomePoint);
}
myVariable = 2;
test(); // Prints 2, instead of 1.
Run Code Online (Sandbox Code Playgroud)
您在评论中提到这myVariable是一个数字。由于myVariable包含原始类型,因此只需使用以下代码:
myVariableAtSomePoint = myVariable;
Run Code Online (Sandbox Code Playgroud)
看一下JAVASCRIPT:按值传递或按引用传递。这是一个引用:
当传入字符串或数字等基本类型变量时,值是按值传入的。
我还建议阅读:如何正确克隆 JavaScript 对象?
编辑:
我相信您假设函数在代码中的放置会影响变量的值。它不是。请参阅下面的示例:
这:
function test () {
var myVariableAtSomePoint= myVariable;
console.log(myVariableAtSomePoint);
}
myVariable = 2;
test(); // Prints 2, instead of 1.
Run Code Online (Sandbox Code Playgroud)
与此相同:
var myVariable = 1;
function test () {
var myVariableAtSomePoint= myVariable;
console.log(myVariableAtSomePoint);
}
myVariable = 2;
test(); // Prints 2, instead of 1.
Run Code Online (Sandbox Code Playgroud)
您的问题是您在将 的值分配给myVariable 之前myVariableAtSomePoint更改了它的值。为了使其按您想要的方式工作,您需要在更改值之前test()调用该函数myVariable
var myVariable = 1;
function test () {
var myVariableAtSomePoint= myVariable;
console.log(myVariableAtSomePoint);
}
test(); // Prints 1
myVariable = 2;
test(); // Prints 2
Run Code Online (Sandbox Code Playgroud)
重要提示:无论函数放置在什么位置,内部的代码test()在调用该函数之前都不会执行。
| 归档时间: |
|
| 查看次数: |
7164 次 |
| 最近记录: |