在 document.ready 中定义函数有什么区别?
它会影响何时可以调用函数的范围吗?
例如,在函数 inside() 和 outside() 的位置定义中是否有任何问题/差异我应该注意:
<script>
document.ready(){
function inside(){
alert('inside');
}
}
function outside(){
alert('outside');
}
</script>
在 document.ready 中定义函数有什么区别?
它会影响何时可以调用函数的范围吗?
例如,在函数 inside() 和 outside() 的位置定义中是否有任何问题/差异我应该注意:
<script>
document.ready(){
function inside(){
alert('inside');
}
}
function outside(){
alert('outside');
}
</script>
是的,您只能inside
从事件回调内部访问该函数ready
:
document.ready(function(){
function inside(){
alert('inside');
}
inside(); // works
outside(); // works
});
function outside(){
alert('outside');
}
inside(); // doesn't work
outside(); // works
它会影响何时可以调用函数的范围吗?
是的,没有别的。
(尽管您的特定示例取决于您首先ready()
向对象添加方法document
。)
Javascript 具有函数级别范围,这意味着如果您在 document.ready 中定义一个函数,它将在 document.ready 之外不可用
我会像这样在外面定义一个命名空间: var app = {};
然后像这样定义你的内部函数: app.inside = function() {
然后 inside 将在您的应用程序全局命名空间中可用。