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