此代码的结果中出现了我无法解释的内容
var ctrl1 = {
func1: function(objct){
objct.options.b = "b";
}
}
var ctrl2 = {
myvar : {options:{a:"a"}},
func2: function(){
console.log(ctrl2.myvar);
ctrl1.func1(ctrl2.myvar);
},
}
ctrl2.func2();
我有结果
Object {a:"a", b:"b"}
通常,它应该显示
Object {a:"a"}
在http://jsfiddle.net/akbach/6u0qnrc6/4/中测试
最佳答案
您的编码工作正常。在控制台打印之前,这些选项会更新。
尝试执行以下步骤,打开控制台,粘贴以下代码。
var ctrl1 = {
func1: function(objct){
objct.options.b = "b";
}
}
var ctrl2 = {
myvar : {options:{a:"a"}},
func2: function(){
console.log(ctrl2.myvar);
debugger;
ctrl1.func1(ctrl2.myvar);
},
}
ctrl2.func2();
一旦代码在调试器停止,您将在控制台中看到所需的结果,即:“ a”
现在恢复脚本执行。之后,在控制台上写入
ctrl2.myvar
,然后您将看到带有a和b的更新的选项。