0

这两个 .js 文件分别与我的代码一起使用,但是当我尝试从一个构造函数访问它时它不起作用。

//.js file 1 Ex

(function(){


var Colors = function(color1,color2) {
this.color1 = color1;
this.color2 = color2;
};

})();

我需要在我的第二个文件中使用它们,就像它们在第一个文件中一样。

//.js file 2

var colors = [
    new Colors('green','blue'),
    new Colors('green','blue')];

    console.log(colors[1] + colors[2]);

有人可以让我知道我做错了什么吗?

4

1 回答 1

3
(function(){


var Colors = function(color1,color2) {
this.color1 = color1;
this.color2 = color2;
};

})();

IIFE 函数包装器的重点是隐藏其中声明的变量。在这种情况下,您可以将其取下。如果您的情况确实需要像这样的“私有”变量,请以某种方式全局导出重要部分,例如

var Colors = (function() {
    function Colors(color1, color2) {
        this.color1 = color1;
        this.color2 = color2;
    }

    return Colors;
})();

或者

(function(global) {
    function Colors(color1, color2) {
        this.color1 = color1;
        this.color2 = color2;
    }

    global.Colors = Colors;
})(this);
于 2013-09-28T04:02:39.373 回答