我是 js 新手,试图了解全局和私有函数。我了解全局变量和局部变量。但是如果我有一个名为test.html
和 2 个名为test1.js
and test2.js
。现在我包括test1.js
and test2.js
in test.html
并调用编写的函数test2.js
inside test1.js
and test.html
.
我在 test2.js 中编写的函数采用这种形式
function abc(){...}
function pqr(){...} etc.
上述这些功能是全局的吗?如果是的话,我如何才能不将它们设为全局并仍然可以在test1.js
and test.html
?
正如我所读到的,全局函数或全局变量很糟糕,对吧?
JS 中的所有内容都绑定到包含范围。因此,如果您定义一个function
直接在文件中,它将绑定到window
对象,即它将是全局的。
要使其成为“私有”,您必须创建一个包含这些函数的对象。你是对的,乱扔全局作用域是不好的,但是你必须将一些东西放在全局作用域中才能访问它,JS 库也会做同样的事情,并且没有其他解决方法。但想想你在全局范围内放置的内容,单个对象对于你的“库”来说应该足够了。
Example:
MyObject = {
abc: function(...) {...},
pqr: function(...) {...}
// other functions...
}
To call abc
对于某个地方,无论是同一个文件还是另一个文件:
MyObject.abc(...);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)