我在 Rails 3.1 项目中使用了这个函数:
setPosition: (object) ->
console.log object
console.log object.width
object["position"] = [500, 50]
this
console.log 对象
给出
Object
height: 600
position: Array[2]
title: "Banner for Creative"
width: 160
__proto__: Object
但是 console.log object.width
是未定义的。为什么?
最佳答案
几天前我回答了一个类似的问题:https://stackoverflow.com/a/8299394/66226
基本上,console.log
具有一些异步行为(在某些环境中)。因此,当您传入对对象的引用时,该对象稍后会被字符串化——而 object.width
现在是 undefined
。
如果你这样做
console.log object.toString()
那么您应该会得到更一致的结果(尽管不太漂亮)。
编辑:或者更好的是,
console.log JSON.stringify(object)
请参阅下面的评论。
关于javascript - Coffeescript/Javascript - 为什么对象属性未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8335856/