Coffeescript / Javascript - 为什么对象属性未定义?

时间:2011-12-01 02:27:52

标签: javascript coffeescript

我有这个函数,我在Rails 3.1项目中使用它:

setPosition: (object) ->
    console.log object
    console.log object.width
    object["position"] = [500, 50] 
    this

console.log object给出了

Object
    height: 600
    position: Array[2]
    title: "Banner for Creative"
    width: 160
    __proto__: Object

console.log object.width未定义。为什么?

1 个答案:

答案 0 :(得分:3)

我几天前回答了类似的问题:https://stackoverflow.com/a/8299394/66226

基本上,console.log有一些异步行为(在某些环境中)。因此,当您传入对象的引用时,该对象将在以后进行字符串化,而object.width现在为undefined

如果你这样做

console.log object.toString()

那么你应该得到更一致的结果(虽然不那么漂亮)。

编辑或者更好,

console.log JSON.stringify(object)

见下面的评论。