【发布时间】:2015-06-13 09:29:16
【问题描述】:
我是 js 新手,并试图了解全局和私有函数。我了解全局变量和局部变量。但是如果我有一个名为test.html 的html 和一个名为test1.js 和test2.js 的2 个js 文件。现在我将test1.js 和test2.js 包含在test.html 中,并在test1.js 和test.html 中调用test2.js 中编写的函数。
我在test2.js中写的函数都是这种形式
function abc(){...}
function pqr(){...} etc.
以上这些函数是全局的吗?如果是,我怎么能不让它们成为全球性的并且仍然可以在test1.js 和test.html 中访问它们?
正如我所读的那样,全局函数或全局变量不好对吧?
【问题讨论】:
-
范围与它们位于不同的 JavaScript 文件这一事实无关。运行一个简单的测试。将一个函数放入 test1 并从 test2 调用它。有用吗?
-
与全局变量几乎完全相同。如果您在“顶层”有一个 var 声明,那么该变量将是全局对象的属性 - 与您使用 function 关键字定义的函数相同。
-
你到底是什么意思?
-
您可以将命名空间添加到
window并将每个文件添加到该命名空间。这样可以防止您用很多变量污染window,我认为这正是您所担心的。 -
正确。但是该命名空间将被添加到窗口对象中,从技术上讲,我编写的函数仍然是全局的,对吗?但只是它们在一个命名空间下。对吗?
标签: javascript function global