编写将所有内容都包含在变量中的Javascript代码
Writing Javascript code having everything in a variable
我早些时候从我正在查看的PhoneGap/cordova文件中了解到了这一点:
var app = {
initialize: function() {
this.bind();
},
bind: function() {
document.addEventListener('deviceready', this.deviceready, false);
},
deviceready: function() {
// This is an event handler function, which means the scope is the event.
// So, we must explicitly called `app.report()` instead of `this.report()`.
app.report('deviceready');
app.handleLogin();
},
}
我只是想知道,与在主体负载上执行的独立函数相比,这样做有什么好处?此外,如果我要在jquery mobile中的"pagebeforeload"上运行一个函数,我将如何将其集成到上述模式中?例如:
$( '#mainMenu' ).live( 'pagebeforeshow', function(event){
alert('pagebeforeshow');
});
简而言之,就是名称空间。
在JavaScript中,一切都是全局的,除非您明确地使其不全局。这意味着事物的名称可能会发生冲突,或者你可以覆盖你不想覆盖的东西。这在大型程序中是个大问题。
显示的模式将应用程序的所有功能命名为单个app
"对象"。因此,任何在全局范围内覆盖bind
的操作都不会影响app.bind
的值。命名空间保护它。
一个好的经验法则是尽可能少地污染全局命名空间。在这种情况下,您将app
设为全局值,仅此而已。您的所有代码都挂起这一全局值。整洁。
至于如何整合你的例子。我可能会这样做:
var app = {
initialize: function() {
app.bindEventHandlers();
// other setup code called here...
},
bindEventHandlers: function() {
$( '#mainMenu' ).live( 'pagebeforeshow', app.pageBeforeShow );
// other event handlers bound here...
},
pageBeforeShow: function() {
alert('pagebeforeshow');
},
// other event handler functions declared here...
// or whatever other functions or data your app needs here...
}
// start your app when the document is ready
$(document).ready(function() {
app.initialize();
});
若您使用OOP语言,那个么您就知道类的定义。JS不支持class关键字,所以要用方法创建对象,应该使用以下代码。然后你可以调用app.initialize()。它还可以为你的应用程序的体系结构提供高级功能。
要将代码集成到现有功能中,您应该创建原型。
app.prototype = { nameOfFunctionHere: function() { alert('pagebeforeshow'); } }
然后打电话给
app.nameOfFunctionHere();
执行您的功能
相关文章:
- 如何在php变量中嵌入JQuery代码
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- 如何将解析云代码的query.count结果保存在变量中
- 如何访问Web2py'中python代码中的JavaScript变量;s视图
- 如何在html中将字符串转换为数字?以及如何将变量传递到scriptlet代码中
- 如何在脚本部分使用php部分代码中的变量
- 如何访问Javascript代码中的rails变量
- 设置变量时破坏游戏代码
- 在Java代码中的javascript函数中使用变量
- 如何将javascript变量传递到Php代码中.
- 如何在jquery中为object键创建一个工作变量以避免额外的代码
- 使用PartialView作为带有变量的可重悬浮html代码
- 在将csv文件中的数据分配给数组变量时增强了d3代码
- 如何获取保存在变量中的HTML代码的任何属性的值
- Javascript将变量添加到代码中
- 改进js代码以删除全局变量和函数
- 在Javascript代码中显示PHP数组变量
- 在单独的上下文中运行 js 代码并访问其全局变量
- 我在哪里添加这个谷歌分析自定义变量代码
- Javascript计数器变量代码抛出不能读取属性异常