我在JS中找到了Module模式:

<script>
var MODULENAME = (function(my, $) {
    my.publicVar = "5";
    my.publicFn = function() {};
    return my;
}(MODULENAME || {}, jQuery));
</script>


但是,我无法执行实例化。模块模式允许吗?

最佳答案

您的模块对象可以包含任何内容。也许您正在寻找在其中包含构造函数的方法:

var MODULENAME = (function(my, $) {

    var privateVar = 10;
    my.SomeConstructor = function() {
        this.publicVar = 5;
    }
    my.SomeConstructor.prototype.someMethod = function() {};
    my.SomeConstructor.prototype.getPrivate = function() { return 10; };

    return my;
}(MODULENAME || {}, jQuery));

var instance = new MODULENAME.SomeConstructor();
instance.publicVar;    // 5
instance.privateVar;   // undefined
instance.getPrivate(); // 10

关于javascript - Javascript面向对象编程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19321337/

10-10 00:00
查看更多