javascript - 无法在函数中读取关联数组/对象

标签 javascript scope global-variables

在 javascript 文件的最开始,我有:

var lbp = {};
lbp.defaults = {
    minLength: 40
};

之后我可以成功提醒它:

alert(lbp.defaults.minLength);  

但是一旦我将它放入函数中,当我发出警报时,我会得到“未定义”。是什么导致了这种情况,我该如何避免这种情况?是否绝对有必要将此变量传递到每个函数中,例如,通过执行以下操作:

function(lbp) { alert(lbp.defaults.minLength); }

我本以为先定义它,它就会达到全局范围并且不需要传入?

提前感谢您启发我:)

======================================

编辑: 问题似乎可能是我的初始化函数本身是在 lbp 中定义的。有没有办法既使用这个函数var,又在里面使用lbp vars?

lbp.initialize = function() {
        alert(lbp.defaults.minLength);  
};

完整的代码如下所示:

<script type="text/javascript">

var lbp = {
    defaults: {
        minLength: 40
    }
};

lbp.initialize = function() {
    alert(lbp.defaults.minLength);  
};
    window.onload = lbp.initialize;
</script>

最佳答案

您实际上是否将 lbp 作为参数传递?否则同名参数将隐藏全局变量。

关于javascript - 无法在函数中读取关联数组/对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2787005/

相关文章:

javascript - 全局曝光 | jQuery 与 Backbone

Javascript 在 html 文件和外部脚本文件中使用 onload 两次

javascript - Angular 工厂,对象范围困惑

android - 蓝牙套接字作为全局变量android

c++ - 使用 LD_PRELOAD 和 C++ 中的全局范围对象加载堆分析器

javascript - 多 View 表单 AngularJS 重新路由

javascript - 访问类中的构造函数属性

python - 导入后运行 hdbscan 并行错误

android - 跨 Activity 共享 "Global"变量,使用 Webview 时出现问题...?

javascript - 测试 React 中的点击事件是否会更新 HTML