在全局命名空间上创建新对象的合法使用
Legal use of creating a new object on a global namespace
在全局命名空间上创建对象是否合法?我的目标是为这个应用程序创建一个全局名称空间。我如何别名mynyte。app?var b = mynyet .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;
})();
相关文章:
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- 从对象命名空间环境中的嵌套setInterval调用嵌套函数
- 向对象原型添加命名空间方法
- 创建命名空间 Javascript 单例类的对象
- 访问 javascript 对象中的更高命名空间
- 将命名空间与对象文本表示法和继承一起使用
- Javascript 对象到函数命名空间
- 如何告诉 JSDoc 我正在传递命名空间对象作为参数
- 创建具有命名空间的 SVG 对象
- 使用命名空间创建新对象
- 如何在模块基础应用程序中隐藏全局命名空间对象
- 如何创建一个空的命名空间对象而不覆盖另一个同名对象
- 这指的是单击的对象,而不是命名空间
- 用于特定对象的jQuery插件命名空间
- 将窗口对象传递到Javascript命名空间中
- 如果目标是避免污染全局作用域,为什么不让更多的人随机化他们的全局命名空间对象呢?
- 如何将一个可观察对象从一个命名空间的viewModel更新到另一个
- JavaScript命名空间对象:脚本包括顺序
- 在全局命名空间上创建新对象的合法使用
- 对象/命名空间和自调用函数