【问题标题】:How to access a JavaScript object from outside of the variable如何从变量外部访问 JavaScript 对象
【发布时间】:2013-08-02 19:10:16
【问题描述】:

我在一个变量中有 JavaScript 对象,我试图从它外部访问它。它的当前形式只是提醒整个函数的代码。我知道这是与变量范围有关的问题。

JsFiddle

如何提醒,例如 id 1 的名称?

var LocalStorage = function() {
    var queries = [
        {id: 1, name: "Mike", age: 28},
        {id: 2, name: "Jane", age: 18},
        {id: 3, name: "Miles", age: 28},
    ];
}

var app = {
    initialize: function() {
        alert(LocalStorage);
    }
};

app.initialize();

【问题讨论】:

  • 首先拥有LocalStorage 函数有什么意义?为什么不在正确的范围内定义数组?
  • 我知道这样会更有意义。但是,在最终的应用程序中,我希望 LocalStorage 单独存在于文件中。我只是为示例简化了所有内容。

标签: javascript object scope


【解决方案1】:

您希望将变量分配为对象本身的属性。

var LocalStorage = new (function() {
    this.queries = [
        {id: 1, name: "Mike", age: 28},
        {id: 2, name: "Jane", age: 18},
        {id: 3, name: "Miles", age: 28},
    ];
    this.foo = "Bar";
})()

var app = {
    initialize: function() {
        alert(LocalStorage.queries[0].name); //Alerts "Mike"
        alert(LocalStorage.foo); //Alerts "bar"
    }
};

app.initialize();

http://jsfiddle.net/qKJag/7/

【讨论】:

  • 您应该编辑 Mihails 并在您的编辑被接受时删除此答案
  • 嗯,我最初提到了他的回答,因为我认为他是制作小提琴的人;刚才注意到它是为原始帖子而来的。我认为我的内容与他的回答明显不同。 (两者都是有效的解决方案)
  • 我明白了,我同意您的方法使它更有用,因为您可以在 LocalStorage 中分配多个要访问的 var,但认为这是您在看到 Mihails 的解决方案后想到的,但您认为它不是,我无法反驳。 :)
【解决方案2】:
var LocalStorage = new (function() {
    var queries = [
        {id: 1, name: "Mike", age: 28},
        {id: 2, name: "Jane", age: 18},
        {id: 3, name: "Miles", age: 28},
    ];
    return queries
})()

var app = {
    initialize: function() {
        alert(LocalStorage[0].id);
    }
};

app.initialize();

http://jsfiddle.net/qKJag/3/

但这并不是什么好方法。如果只使用 Array,则不需要 make 函数 LocalStorage。

【讨论】:

    猜你喜欢
    • 2015-03-05
    • 2023-04-07
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2021-01-04
    相关资源
    最近更新 更多