在 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/