gpt4 book ai didi

JavaScript 命名空间和对象创建

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:51:37 26 4
gpt4 key购买 nike

我想弄清楚为什么您可能会使用以下代码:

    var myObject = myObject || {};

我已经看到它被使用了好几次,但不明白为什么有必要这样做。感谢您的回复。

最佳答案

人们称 JavaScript 的二进制或 ||违约运营商

var myObject = myObject || function(){};

相同
var myObject = myObject ? myObject : function(){};

下面的代码

var AppSpace = AppSpace || {};

被使用是因为多个文件将要设置和使用命名空间,如果已经创建了命名空间,您不想覆盖它。这样,首先包含哪个文件并不重要。

这是另一个默认示例。

function doSomething (callback)  {
something();
code();
callback = callback || function() {};
// Now we can call the callback even if it wasn't passed in.
callback();
}

但是要注意下面的问题Why does IE nuke window.ABC variables?

也就是说,如果命名空间已经被定义为

window.AppSpace = {a: 1};

还有另一个文件集

var AppSpace = AppSpace || {}

在IE中,如果两个脚本在不同的脚本标签中,由于变量提升和IE没有意识到window.a的事实,它会将window.AppSpace的值覆盖为空对象。和 var a在顶层都指向同一个变量。

关于JavaScript 命名空间和对象创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12429823/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com