javascript中对象写在函数外面,函数内部不能使用吗?

为什么javascript中对象写在函数外面,函数内部就不能使用呢?下面这样就可以正常弹出信息... 为什么javascript中对象写在函数外面,函数内部就不能使用呢?

下面这样就可以正常弹出信息
展开
 我来答
zhou2003737
2014-10-26 · TA获得超过1427个赞
知道小有建树答主
回答量:1082
采纳率:77%
帮助的人:402万
展开全部
首先要明白javascript执行的顺序是顺序执行的。从上到下,从左到右。
当界面加载的时候,加载到head下面的script的时候,document.body此时还未加载。所以第一句 body_obj为null.
当执行countBodyChildren方法时候,由于body_obj为null所以报错。
第二个如果在页面未加载完毕调用的时候仍然会报错。原理同上。
所以如果script写在head中,一定记住加上判断界面执行完毕后执行相关代码。常用的。
普通javascript :window.onload=function(){
//todo;

}
Jquery:$(function(){
//todo

});
这样确保dom加载完毕后执行。或者是在页面最后写script。
追问
拜托 我是真的有点不懂
您说的“当界面加载的时候,加载到head下面的script的时候,document.body此时还未加载。”这句话是什么意思?谁先加载?为什么document.body没有加载?你是说每次都是先加载页面信息后加载javascript或者css吗?一篇文档中是不是只能有一个window.onload?希望能告诉我每一个答案。
追答
界面加载是从上到下的

css

script

以上是一般写法。
所以说是先加载head中类容在加载body内容。
此时body还未加载。
理论是一个文档中只有一个window.onload.
析君豪2Q
2014-10-26 · TA获得超过411个赞
知道小有建树答主
回答量:724
采纳率:50%
帮助的人:199万
展开全部
页面都未加载完成就会先执行了var body_obj = document.body;这时document.body就是null;

如果写在函数里面,那是因为调用函数时页面已经加载完了,所以document.body不是null
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式