[英]Legal use of creating a new object on a global namespace
在全局名称空间上创建对象是否合法使用? 我的目标是为此应用程序创建1个全局名称空间。 另外,我将如何命名MYNYTE.app? 我可以在不污染Global名称空间的情况下执行以下操作: var b = MYNYTE.app;
if( ! MYNYTE ) MYNYTE = {};
if( ! MYNYTE.app ) MYNYTE.app = {};
MYNYTE.app.Playbook = function(){
this.change = '';
this.boo = function(){alert('boo');}
this.setChange = function( v )
{
this.change = v;
}
this.getChange = function( v )
{
return this.change;
}
}
var test = new MYNYTE.app.Playbook();
var test2 = new MYNYTE.app.Playbook();
test.boo();
test.setChange( 'Change is bad' );
test2.boo();
test2.setChange( 'Change is great' );
console.log( test2.getChange() );
console.log( test.getChange() );
这是我通常使用的结构。 有趣的是看是否还有更好的东西!
var MYNYTE = MYNYTE || {};
MYNYTE.app = MYNYTE.app || {};
(function() {
var Playbook = function Playbook() {
...
};
MYNYTE.app.Playbook = Playbook;
})();
// Avoid polluting the global scope
(function() {
var b = MYNYTE.app.Playbook;
var OtherClass = function OtherClass() {
...
b.setChange( 'something' );
};
MYNYTE.app.OtherClass = OtherClass;
})();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.