通过JS传递窗口全局变量似乎不工作。下面的代码打印为true:
window.nada = true;
tata(window.nada);
console.log(window.nada);
function tata(lala) {
lala = false;
}
如何影响window.nada
全局变量在tata
函数里面?
从技术上讲,JavaScript使用共享调用。
实际上,你必须传递整个window
对象,以及你想要更改的属性的名称:
tata(window, 'nada');
function tata(window, prop)
{
window[prop] = false;
}
您的window.nada
是原始数据类型(Boolean
)。
基本数据类型是按值而不是按引用传递给函数的。所以在tata
函数中lala
变量不知道window.nada
的值