为什么 let MyNamespace = MyNamespace || {};导致 javascript 中出现未捕获的引用错误?

问题描述 投票:0回答:1

我正在尝试在 javscript 中定义命名空间,并且正在遵循本教程:https://www.geeksforgeeks.org/namespacing-in-javascript/

第一行是:

let MyApp = MyApp || {};

我认为

MyApp || {}
是为了防止意外重新声明
MyApp
。但这只会产生错误。
Uncaught ReferenceError: MyApp is not defined.

为什么这不起作用?

javascript
1个回答
0
投票

那行代码不起作用。我认为它是由记住

var
如何工作的人写的,但是对于
let
const
来说,它没有意义。

let
const
定义的变量在声明之前不能使用,并且由于首先评估右侧,因此该变量尚未声明。另一方面,如果它已经被声明了,那么再次声明它会抛出一个不同的错误:“Identifier MyApp has not beenelated”

let MyApp = {};
let MyApp = MyApp || {}

因此无论它是否已经存在,代码都会抛出错误。


var
是定义变量的唯一方法时,你可以编写这种代码。那是因为你可以在定义变量之前访问它(它的值只是
undefined
),并且你可以重新声明变量。

© www.soinside.com 2019 - 2024. All rights reserved.