标签:javascript global-variables
我们有很多设置JS代码,用于定义将在许多其他JS文件中使用的面板,按钮等.
通常,我们会这样做:
grid.js
var myGrid = .....
combos.js
var myCombo = .....
然后,在我们的应用程序代码中,我们:
的application.js
function blah() {
myGrid.someMethod()
}
someother.js
function foo() {
myCombo.someMethod();
myGrid.someMethod();
}
那么,我们应该使用var myGrid还是更好地使用window.myGrid
有什么不同?
解决方法:
我建议创建一个命名空间变量var App = {};
App.myGrid = ...
这样你就可以限制全局命名空间的污染.
编辑:关于变量问题的数量 – 想到2个可能的解决方案:
>您可以通过类型(网格,按钮等)或关系(ClientInfoSection,AddressSection等)进一步命名它们
>您将方法封装在使用您拥有的组件实例化的对象中
例如:你有
function foo() {
myCombo.someMethod();
myGrid.someMethod();
}
变为:
var Foo = function(combo, grid) {
var myCombo = combo;//will be a private property
this.myGrid = grid;//will be a public property
this.foo = function() {//public method
myCombo.someMethod();
myGrid.someMethod();
}
}
App.myFoo = new Foo(someCombo, someGrid);
App.myFoo.foo();
这样你就可以限制小对象的数量,只暴露你需要的东西(即foo函数)
PS:如果需要公开内部组件,则将它们添加到构造函数内部
标签:javascript,global-variables 来源: https://codeday.me/bug/20190923/1814945.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。