[英]Javascript - web application structure
我在Javascript应用程序各部分之间管理数据时遇到问题。 我试图坚持使用“ MVC”模式,所以用MVC术语来讲,我无法使我的某些“ C”(控制器)功能访问“ M”(模型)给出的数据。 具体来说,如果不使数据全局(我想避免这种情况),就无法使事件函数到达数据。
伪造的情况只是为了向您展示我的意思:
HTML:
<body>
<div onclick="func()"></div>
</body>
JS:
var Data = function(num) {
this.num = num;
}
window.onreadystatechange = function() {
var data = new Data(5);
}
function func() {
//How do i access the object "data" from here?
}
问题是:如何使事件处理程序访问数据?
var Data = function(num) {
this.num = num;
}
var data;
window.onreadystatechange = function() {
data = new Data(5);
}
function func() {
//data.num
}
您必须在func可以访问的范围内声明数据
如果您担心全局变量,可以这样做
var service = {};
(function(service) {
var Data = function(num) {
this.num = num;
}
var data;
window.onreadystatechange = function() {
data = new Data(5);
}
service.func = function func() {
//data.num
}
})(service);
//call the function
service.func();
这将在自执行闭包中进行调用,这将阻止变量进入全局范围。 您可以传入服务实例并将func方法附加到该实例,以便能够对其进行调用。 jQuery插件通常遵循这种模式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.