JS:从函数接收的参数与实际参数不同
问题描述:
我面临一个奇怪的情况。我正在向该方法发送一个参数。在接收端,我得到了不同的参数。JS:从函数接收的参数与实际参数不同
这是屏幕截图。
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/
发送:{}。
预计:{}
答
这是因为console
的输出显示你的对象的地位,因为它现在是,不因为它是当你叫console.log
。
获取当前对象状态的最佳方法是在输出它之前将其输入JSON.stringify()
;请注意,这将删除所有函数和非JSON属性。
+0
我浪费了30分钟。我在调用'extend'方法之前打印。非常感谢。 – kannanrbk 2013-03-09 10:37:04
你在期待什么? – 2013-03-09 10:33:59
代码中的哪个位置是打印的接收值? – Barmar 2013-03-09 10:35:16
@Barmar,function Chart(opt){ console.log(opt); 图表方法。 – kannanrbk 2013-03-09 10:38:42