有没有办法知道2个javascript变量指向相同的内存地址?
var my_var = {
id: 1,
attribute: "myAttribute"
}
var copy = my_var;
//someting like
if(copy === my_var) return true;
Run Code Online (Sandbox Code Playgroud)
fre*_*ish 15
有没有办法知道2个javascript变量是否指向相同的内存地址?
一般来说答案是否定的.原始类型(如数字)按值传递.所以我们有
> var x = 1;
> var y = 1;
> x === y;
true
Run Code Online (Sandbox Code Playgroud)
即使它们没有引用相同的内存位置(嗯,这是一个实现细节,但它们至少在V8中并没有指向相同的内存地址).
但是,如果双方都是对象,那么是:使用==或===.如果双方都是对象,则每个操作员检查它们是否指向相同的存储器地址.
> var x = {test: 1};
> var y = {test: 1};
> x === y;
false
Run Code Online (Sandbox Code Playgroud)
小智 13
你不能在C中使用别名变量.在javascript中,类似于
var x = 1;
var y = x
y = 4;
// x is still 1
Run Code Online (Sandbox Code Playgroud)
永远都是如此.
但是,对象始终通过引用传递
var x = { one: 1, two: 2 };
var y = x;
y.one = 100;
// x.one is now 100
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18264 次 |
| 最近记录: |