javascript console.log 在同一对象上显示不同的值

标签 javascript angularjs console.log

我正在开发 AngularJS 应用程序。当我 console.log 一个对象(指令链接函数的 attrs 参数)时,浏览器显示参数“可编辑”的不一致结果(见图)。在 Chrome 中,该属性的值同时为“zzz”和未定义(参见第 5 行与第 1 行)。在 Safari 中,输出显示不同,但在 console.log(object) 上,“editable”属性显示为“zzz”,而在 console.log(object.editable) 上,该属性未定义。

有什么提示吗?

我认为这个问题与:console.log() showing contradictory values for the same object property有关

console bug?

最佳答案

我猜你的 HTML 是这样的

<div my-directive editable="{{someScopeProperty}}"...></div>

并且您正在链接函数中调用 console.log()。当链接函数运行时,插值属性还没有定义(你需要使用 $observe$watch 来异步获取插值),所以你会得到 undefined 如果您尝试记录该值。不久之后,该值被定义,Chrome 似乎会在您记录完整对象(而不仅仅是单个值)的控制台中自动更新该值(我认为这实际上是一个引用)。

关于javascript console.log 在同一对象上显示不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16571003/

相关文章:

javascript - .getElementById IE

javascript - 如何检测是否在 Tumblr 上的单个帖子/页面上?

javascript - 在 AngularJS 中如何取消选中单选按钮以使所有对象变为假

javascript - 如何知道 ng-repeat 中的复选框是否选中以及如何将 ng-model 用于复选框

angularjs - 如何使用 AngularJS 服务依赖项对 Angular 服务进行单元测试

javascript - 带有 typescript : what determines how an object is rendered?的vscode调试器

javascript - 无法使用console.log()

javascript - CSS z-index 不起作用(使用相对定位,使用顶部和左侧)

typescript - 以编程方式访问 TypeScript 调用堆栈

javascript - 将 Angular 值传递给普通 JavaScript