javascript:带对象的公共数组

时间:2013-02-21 17:18:39

标签: javascript arrays

(对不起我的英文= /) 我在'onload'时创建了一个数组。

(在此:

var $ = {
    ratio: 0.7,
    screen: 500,
    margin: 10,
    canvas: document.getElementById("canvas"),
    ctx: document.getElementById("canvas").getContext("2d"),
}

并且$.canvas$.ctx被赋予'null'。 这项工作,如果我重写它

...
canvas: function(){return document.getElementById("canvas")}
...

但如果我想调用此变量,则变量看起来像$ .canvas () 如何在没有'()'???

的情况下制作这个变量

2 个答案:

答案 0 :(得分:2)

试试这个:

window.onload = function(){
    window.$ = {
        ratio: 0.7,
        screen: 500,
        margin: 10,
        canvas: document.getElementById("canvas"),
        ctx: document.getElementById("canvas").getContext("2d"),
    }
}

答案 1 :(得分:1)

看起来这是$变量范围的问题。通过在var函数内使用window.onload关键字声明它,其范围是本地函数,而不是全局范围。

您可以在onload函数之外定义它:

var $; // in the global scope

window.onload = function(){
    $ = {
        ratio: 0.7,
        screen: 500,
        margin: 10,
        canvas: document.getElementById("canvas"),
        ctx: document.getElementById("canvas").getContext("2d")
    };

    console.log($.canvas);
    console.log($.ctx);
};

通过在全局范围内声明它,可以从onload函数外部访问它。

Fiddle