Javascript JS:从函数接收的参数与实际参数不同
我正面临一个奇怪的局面。我正在向该方法发送一个参数。在接收端,我得到了不同的参数 这是屏幕截图 JS代码:Javascript JS:从函数接收的参数与实际参数不同,javascript,Javascript,我正面临一个奇怪的局面。我正在向该方法发送一个参数。在接收端,我得到了不同的参数 这是屏幕截图 JS代码: <script> var defaultOptions = { chart:{ "type":"series", "container":"#container", "width":700, "height":500, "margin":{ "left":1
<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>
var defaultOptions={
图表:{
“类型”:“系列”,
“容器”:“容器”,
“宽度”:700,
“高度”:500,
“保证金”:{
“左”:100,顶部:50,右侧:10,“底部”:50
}
}
};
var Util={
/**
*@如果给定对象是有效对象,则返回true。
*/
有效:功能(obj){
返回obj!==undefined&&obj!==null;
},
/**
*@要扩展的参数{object}。
*@参数b{object}
*@返回{object}
*/
扩展:功能(a,b){
var-m;
如果(!Util.valid(a)){
a={};
}
(b中的m){
a[m]=b[m];
}
返回a;
}
};
功能表(opt){
控制台日志(opt);
/**
*设置默认图表选项。
*/
Util.extend(opt,defaultOptions);
}
var ChartLite={};
Util.extend(ChartLite{
图表:图表
});
$(函数(){
var chart=new ChartLite.chart({});
});
JS Fiddle链接:
发送:{}
预期:{}这是因为
控制台
的输出显示了对象的当前状态,而不是调用控制台.log时的状态
获取对象当前状态的最佳方法是在输出对象之前对其进行JSON.stringify()
;请注意,这将删除所有函数和非JSON属性 你在期待什么?在代码中,收到的值打印在哪里?@Barmar,函数图(opt){console.log(opt);在图表方法中。我在上面浪费了30分钟。我在调用extend
method之前打印了。非常感谢。