我有相同的HTML代码:
<ul>
<li class="first">foo</li>
<li class="second">bar</li>
<li class="third">baz</li>
</ul>
和相同的CoffeeScript:
$ ->
class List
@list: {}
@push: (el) ->
@list[el.attr('class')] = el.text()
@start: ->
console.log @list
$.each $('li'), (i, el) =>
@push($(el))
console.log @list
List.start()
在浏览器的控制台中,我看到第一次和第二次调用console.log的输出相同:
Object
first: "foo"
second: "bar"
third: "baz"
__proto__: Object
为什么在第一次调用console.log @list时已填充?