1

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

这是屏幕截图。

在此处输入图像描述

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/

发送:{}。

预期:{}

4

1 回答 1

0

这是因为 的 输出console显示 了 对象现在的 状态, 而 不是你 调用 时console.log的 状态.

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

于 2013-03-09T10:35:20.417 回答