JS:函数接收的参数与实际参数不同

时间:2013-03-09 10:32:09

标签: javascript

我面临着一种奇怪的情况。我正在向方法发送一个参数。在接收端我得到了不同的参数。

这是屏幕截图。

enter image description here

JS代码:

    <script>
var defaultOptions = {
    chart:{
        "type":"series",
        "container":"#container",
        "width":700,
        "height":500,
        "margin":{
            "left":100 , top:50 , right:10 , "bottom":50
        }
    }

};



var Util = {
    /**
     *@return true if the given object is an valid one.
     */
    valid: function(obj){
        return obj !== undefined && obj !== null;
    },
    /**
     *@param a {object} to extend.
     *@param b {object} 
     *@return {object}
     */
    extend:function(a , b){
        var m;
        if(!Util.valid(a)){
            a = {};
        }
        for(m in b){
            a[m] = b[m];
        }
        return a;
    }

};


function Chart(opt){
    console.log(opt);
    /**
     *Setting default chart options.
     */
    Util.extend(opt , defaultOptions);


}


var ChartLite = {}; 

Util.extend(ChartLite , {
    Chart:Chart
});
</script>

<script>
$(function(){
    var chart = new ChartLite.Chart({});
});
</script>

JS小提琴链接:http://jsfiddle.net/993Wu/15/

发送:{}。

预期:{}

1 个答案:

答案 0 :(得分:0)

这是因为console的输出显示了对象的状态,因为它现在是,而不是,就像你调用console.log <时那样/ em>的

在输出对象的当前状态的最佳方法是JSON.stringify()输出它;请注意,这将删除所有函数和非JSON属性。