当您查看Backbone对象时,“r”在chrome开发工具中意味着什么?

时间:2016-04-28 16:16:57

标签: backbone.js google-chrome-devtools

我正在学习骨干,并使用chrome devl工具查看浏览器中的对象。 'r'是什么意思?

enter image description here

1 个答案:

答案 0 :(得分:2)

它是用于创建模型对象的构造函数的名称。但是在这种情况下,Backbone代码已经缩小了。

如果您创建基本Model类的实例,它将被记录为:

Backbone Model instance logged

如果查看Backbone source code,可以找到构造函数定义:

var Model = Backbone.Model = function(attributes, options) {

但是,如果您的代码被压缩,则对象将显示如下:

Base model instance with compressed Backbone

在您的情况下,您正在使用Backbone的扩展机制来创建一个继承自基本模型的新模型类型。

未压缩,这将显示如下:

child model

同样,我们可以查看Backbone源代码以了解原因:

var extend = function(protoProps, staticProps) {
    // ...
    child.prototype.constructor = child;
    // ...
    return child
}

您可以看到,在创建新模型类型时,Chrome无法访问您要用于模型的名称。相反,它会尽力从变量名称中推断出正确的名称。

然后,在压缩之后,您将获得您在控制台中看到的单字符类名称:

compressed Backbone logged new model instance