在Javascript中传递窗口变量作为参数



通过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的值

最新更新