我发现JavaScript的一些奇怪的行为,将变量作为参数传递给函数,这里是片段:
var notWorks = {
aa: "string",
}
function why() {
var thisWorks = notWorks;
$.get("/echo/json").then(function() {
printVal(notWorks);
printVal(thisWorks);
});
notWorks = {};
}
function printVal(val) {
console.log(val);
}
why();
Run Code Online (Sandbox Code Playgroud)
输出是:
Object { }
Object { aa: "string" }
Run Code Online (Sandbox Code Playgroud)
对于变量notWorks,一切都很清楚 - 当变量已经被清除时,调用then()中的函数.但是为什么如果我将这个对象设置为一个新变量,它会保存变量的初始值?对象通过链接传递给功能,不是吗?
javascript ×1