<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<script type="text/javascript" src="lb-core.js"></script>
<script type="application/javascript">
var lbp = {
    defaults: {
        color: "blue"
    },
    init: function(config) {
        if(config) {
            for(prop in config){
                setBgcolor.defaults[prop] = config[prop];
            }
        }
        var bod = document.body;
        bod.style.backgroundColor = setBgcolor.defaults.color;
    }
}
window.onload = lbp.init();
</script>
</HEAD>
<body>
<div id="container">test</div>
</body>
</HTML>


当在window.onload调用以上命令时,为什么bod返回为undefined?

最佳答案

您的代码需要一些柚木,这是一个整体解决方案:

var lbp = {
    defaults: {
        color: "blue"
    },
    init: function(config) {
        if(config) {
            for(prop in config){
                lbp.defaults[prop] = config[prop];
            }
        }
        var bod = document.body;
        bod.style.backgroundColor = lbp.defaults.color;
    }
}
window.onload = lbp.init;


之前它之所以立即调用init是因为window.onload = lbp.init()会将lbp.init的结果分配给onload函数,而不是分配实际的函数,这已在上面解决。

另外,不确定setBgcolor在您的代码中来自何处,我相信您的意思是lbp在这里,它可以与上面的相同代码一起工作,请对其进行测试。

10-07 12:39