我会假设调用堆栈命名函数,它看起来像它试图,但它们是奇怪的名称。例如,当进入Backbone fetch()时,我得到了这个。
_.extend.fetch
我假设是指Backbone.Collection.prototype.fetch
此函数是从Backbone.View.extend.initialize
调用的,我假设它是Backbone.View.prototype.initialize
为什么命名如此不奇怪,如果不准确?
答案 0 :(得分:0)
使用_.extend
from the underscore library将原型方法添加到Collection
,即最新版本的第633行:
https://github.com/jashkenas/backbone/blob/628590bac02b7eb7ef6590773fdb90422e77b913/backbone.js#L633
目前还不清楚Chrome是如何将其转换为_.extend.fetch
的,但这可能与它有很大关系。在我看来,fetch
是传递给_.extend
的文字对象的一部分,所以也许这就是推导。
许多库使用匿名对象使用这种奇怪的扩展语法定义对象,这可能会使调试器混淆不少。但是,例如,如果没有像Coffeescript这样的东西,很难简洁地为原型分配属性。