如何制作全局javascript函数和变量?

时间:2015-03-20 03:35:50

标签: javascript

我在文件hello.js中有一个变量和一个函数,如下所示:

我想调用上面的函数并从另一个文件中访问该变量,比如app.js,(同一文件夹中的两个文件)var width = 500;

function reset() {
//some code
}

我该怎么做呢。

感谢。

修改

实际上,

我有上面的变量和函数在另一个函数中,(我之前没有提到,我以为我会提示并让它工作):

就像这样:

var Engine = (function(global) {

var width = 500;
var canvas = doc.createElement('canvas'),
canvas.width = 500;

function reset() {
//some code
})(this);

现在我正在尝试访问这些函数和变量,如下所示:

console.log(Engine.canvas.width);
Engine.reset();

它无法识别reset()canvas

3 个答案:

答案 0 :(得分:2)

根据您的编辑,您必须通过返回/公开它们来公开变量(或者您可以使用Engine实例的方法/属性创建构造函数...)

var Engine = (function() {
    var width = 500; // private

    var canvasEl = document.createElement('canvas');
    canvasEl.width = 500;

    function reset() {
        // some reset code
    }

    return {
        canvas: canvasEl,
        reset: reset
    }
})(this);

console.log(Engine.canvas.width) // 500

答案 1 :(得分:0)

您可以为窗口对象指定任何内容,然后就可以从任何地方访问它。

window.width = 500;

然后你可以使用window.width从任何地方获取值。

答案 2 :(得分:0)

var addresses = ["http://display.companyX.com/rest/banner?l_id=A000-0000-0000000-000000-111111-0-0-0&k=A77K_fakfhaskfhkjshfkjo=kafkjafk",
 "http://display.companyX.com/rest/banner?l_id=A000-0000-0000000-000000-111111-0-0-0&k=A77K_fakfhaskfhkjshfkjo=kafkjafk",
 "http://display.companyX.com/rest/banner?l_id=A000-0000-0000000-000000-111111-0-0-0&k=A77K_fakfhaskfhkjshfkjo=kafkjafk",
 "http://display.companyX.com/rest/banner?l_id=A000-0000-0000000-000000-111111-0-0-0&k=A77K_fakfhaskfhkjshfkjo=kafkjafk",
 "http://display.companyX.com/rest/banner?l_id=A000-0000-0000000-000000-111111-0-0-0&k=A77K_fakfhaskfhkjshfkjo=kafkjafk"
 ];
var results = addresses.map(x => x.split("?")[1].split("&")[0].split("-")[4])
console.log(results);

}

var myEngine = new Engine(window);

的console.log(myEngine.width);    myEngine.reset( '600像素');

// secondFile.js    //window.width ='500px'