繁体   English   中英

Javascript-Web应用程序结构

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM